ローソンデジタルイノベーション テックブログ

ローソンデジタルイノベーション開発チームのテックブログです

finalとprivate修飾子の有無でビルド速度が変化するのか検証してみた

はじめまして、去年末にLDIに入社したiOSエンジニアの柳です。

今回はビルド速度改善に関する記事を書きたいと思います。

今回やったこと

finalとprivateを付与することでビルドの速度が改善される。という話は以前から聞いたことがあったのですが、どれくらいの差が出るのか?というのは試したことがありませんでした。

ちょうど私が担当しているiOSアプリのプロジェクトでは必要に応じてfinalとprivate修飾子が付与されていたのでこれを全て外してビルド速度に差が出るのか検証してみました。

前提条件

  • 端末スペックについて
    • 端末:2018年モデルのMacBook Pro
    • CPU:2.9 GHz 6コアIntel Core i9
    • メモリ:32GB
  • プロジェクトの規模
    • final修飾子:約450箇所
    • private修飾子:約800箇所

※検証する環境によって結果が変わると思われるので参考程度に情報を記載します。

結果

今回検証してみた結果、約5秒(+33%)も変化がありました。

ビルド状態 ビルド時間
final、private修飾子削除前 約15秒
final修飾子削除後 約16秒
private修飾子削除後 約20秒

感想

後からfinal、private修飾子を付与するのは大変なのでコーディングを行う際は忘れず付与するよう意識しなければならないと改めて感じました。

微々たる速度変化ですが、付与しなければ徐々に遅くなるので今後の開発でも忘れずfinal、private修飾子を付与していきたいと思います。