読者です 読者をやめる 読者になる 読者になる

面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

Swift3.0で繰り返し処理の速度比較

処理速度の速い今となっては意味があるかわからないが、
とりあえず気になったから検証してみる
(計測方法が合ってるか不安あり)

比較項目
  • for-in (単純列挙)
  • forEach (単純列挙)
  • enumerated (index付列挙)
  • enumerated.map (index付列挙)
実験環境
  • Xcode8.0 (8A218a)
  • Swift3.0
  • Playground
結果

f:id:aryzae:20160920154555p:plain

処理 時間
for-in 0.000577032566070557
forEach 0.000515997409820557
enumerated 0.000134050846099854
enumerated.map 0.000425994396209717

enumeratedが最速ってことで本当にいいんですかね?
(さりげなくSwift2.0でenumerateだったのが、enumeratedに変わってるのね。コメントは綴り間違えてるし)
実験前はindexとか余計なものが付かないfor-inforEachが最速と思っていたんですけど・・・。

納得いく理由が思いつかないから、計測の仕方間違えてるんじゃないかとさえ思える・・・何か理由わかる人いたら教えてください。