SwiftのArrayにfilterやmapをつなげたときの実行速度とlazyの落とし穴 by 吉岡祐樹

iOSDC Japan 2025
LT(5分)

SwiftのArrayにfilterやmapをつなげたときの実行速度とlazyの落とし穴

rikusouda 吉岡祐樹 rikusouda
3

Swiftでは、Arrayに対してfilterやmapをつなげた宣言的な記述をよく使いますが、「この書き方で実行速度は大丈夫?」と感じたことはないでしょうか?

このLTでは、users.filter { $0.isActive }.map { $0.name } のような典型的な記述を対象に、filterやmapをつなげた場合の処理速度を、書き方の違いによって比較検証した結果を交えて紹介します。

ちょっとした記述の違いやlazyの有無によって意外な差が生まれ、期待通りに高速化されないケースもありました。
実際のコード例や計測結果を交えながら、宣言的コードとパフォーマンスのバランスをどう考えるかについてお話しします。

「lazyは速いと思ってたのに…」そんな小さな驚きと発見をお届けします。