XcodeでSwiftのコンパイルにかかる時間を調査する方法を調べてみた

概要

XcodeでiOSアプリを開発していると、プロジェクト後半になるにつれて、徐々にビルド時間が伸びていて時々、チーム内でも議論されていました。まずは、どの部分で時間がかかっているかを調べてみようと思います。なので今回は、XcodeでiOSアプリを開発する時に、コンパイルにかかる時間を調べる方法をご紹介します。

環境

  • Xcode: Version 9.4(9F1027a)
  • macOS: 10.13.5

やり方

Xcodeの Other Swift Flags に以下のパラメータを追加します。すると、設定時間以上にコンパイルに時間がかかる箇所が、warningとして表示されるようになります

-Xfrontend -warn-long-expression-type-checking=100
-Xfrontend -warn-long-function-bodies=100

数字の部分はms単位ですので、適宜変更して下さい。入力した後の状態は以下のようになります。図ではわかりやすくするために、3msに設定しています   

パラメータについて

  • -warn-long-expression-type-checking=100は、型推論に100ms以上かかる箇所を警告で表示します。
  • -warn-long-function-bodies=100は、コンパイルに100ms以上かかるメソッドを警告で表示します。

結果

以下のように表示されるようになります。(設定は3msにしてあります。)

参考にした記事