Objective-C、Swiftでのfor文の実行速度の比較をしてみましたので結果を記述したいと思います。
環境によっては結果に差異がある可能性もありえますので御了承下さい。
■検証環境
•Xcode6 Beta6(LLVM6.0、最適化設定はデフォルト設定のまま)
•iPod touch 第5世代 ios 7.1.1
•検証時のプログラムは全てRelease実行
■検証内容
【検証1】 以下のObjective-Cコードで10万回ループを10回試行。平均0.000013(13nsec)
int cnt = 0; NSDate* start = [NSDate date]; for( int i=0; i<100000; i++){ cnt++; } NSDate* end = [NSDate date]; NSLog(@"%d, %0.6f", cnt, [end timeIntervalSinceDate:start]);
【検証2】 以下のSwiftコードで10万回ループを10回試行。平均0.002024(約2msec)
var cnt = 0 var start = NSDate() for( var i=0; i<100000; i++ ){ cnt++ } var end = NSDate() println(NSString(format:"%d, %.6f",cnt,end.timeIntervalSinceDate(start) ))
【検証3】 以下のSwiftコードで10万回ループを10回試行。平均0.001164(約1.15msec)
var cnt = 0 var start = NSDate() for i in 0..<100000 { cnt++ } var end = NSDate() println(NSString(format:"%d, %.6f",cnt,end.timeIntervalSinceDate(start) ))
■結果
上記結果だけで判断した場合、現在の所はObjective-Cの方がSwiftよりも実行速度が上のようです。
またSwiftで単純なループを行う場合は「for in」で記述した方がよさそうです。
次回は配列の要素参照時の実行速度について検証してみたいと思います。
この記事を書いた人
- いもしです。 少し前までbitcoinFXを研究していましたが、育児奮闘の為停止中。 好きな言葉は「日々是好日」です。
この投稿者の最近の記事
- ReMINE開発秘話2016.08.24Maker Faire Tokyo 2016に出展してきました!
- iOS2015.02.27Swift + XCTest ~ Equatableプロトコルについて ~
- iOS2014.08.25実行速度計ってみましたその1_Objective-C,Swiftでのfor文