SwiftUI Instrumentによるプロファイリング
Instrumentsで再描画のボトルネックを見つけます。
「SwiftUI Instrumentによるプロファイリング」はCoddyKit上の無料Swift Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSwift Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Swift Academyコースには全4レッスンが含まれています。
なぜプロファイリングするのか
計測せずに行うパフォーマンス改善は、当て推量にすぎません。Instruments の SwiftUI Instrument を使うと、どのビューがどの程度の頻度で更新されているかを正確に確認できます。
Instrument を開く
Xcode で Product > Profile(または Command-I)を選択して Instruments を起動し、SwiftUI テンプレートを選びます。アプリを実行し、遅い画面を操作してください。
ビューの body の評価回数
Instrument は、各ビューの body が評価された回数を報告します。予想外に多い回数は、過剰な再計算が起きていることを直接示します。
View body の実行時間が長い場合
回数だけでなく、body の実行時間も確認してください。ほとんど呼び出されなくても 30ms かかる body は、低コストであっても常に呼び出される body と同じくらい問題になります。
更新原因のレーン
Instrument は、ビューが更新された理由、つまりどの状態、バインディング、または監視対象プロパティが変化したかを説明します。これにより、範囲を絞るべきトリガーを特定できます。
Identity の変動を見つける
ビューが更新されるのではなく、繰り返し生成と破棄をされている場合、タイムラインに新しいインスタンスが表示されます。これは通常、identity の問題(インデックスの ID、分岐の切り替え)を示します。
ハングとカクつき
SwiftUI Instrument を Hangs および Animation Hitches Instrument と組み合わせると、負荷の高い body と、画面上で目に見えるカクつきを関連付けられます。
自身と子ビュー
時間がビュー自身の body と子ビューのどちらで消費されているかを確認してください。これにより、ビュー自体を最適化すべきか、ツリーの下位に修正を移すべきかが分かります。
現実的なシナリオを再現する
静止した画面ではなく、完全なリストをスクロールしたり、フィールドに入力したりするなど、実際のユーザーフローをプロファイリングしてください。パフォーマンスの問題は、停止中ではなく操作中に現れます。
反復する: 計測、修正、再計測
状態の範囲を狭める、Equatable を追加する、ビューを分割するなど、変更を 1 つ適用してから再度プロファイリングしてください。次に進む前に body の評価回数が減ったことを確認し、検証していない「最適化」を積み重ねないようにします。
正しくプロファイリング用にビルドする
Release ビルドをプロファイリングしてください。Debug ビルドでは最適化が無効になり、オーバーヘッドも追加されるため、製品版のパフォーマンスを反映しない誤解を招く数値になります。
クイックチェック: プロファイリング
SwiftUI Instrument についての理解を確認します。
まとめ: SwiftUI Instrument によるプロファイリング
SwiftUI Instrument は、body の評価回数、実行時間、各更新の原因を表示し、過剰な再計算や identity の変動を明らかにします。Hangs および Animation Hitches と組み合わせ、self と children の時間を区別し、Release ビルドで現実的なフローをプロファイリングしてください。
計測し、1 つの修正を適用し、再計測するという反復で最適化し、すべての変更をデータで検証してください。
よくある質問
「SwiftUI Instrumentによるプロファイリング」レッスンは無料ですか?
はい。「SwiftUI Instrumentによるプロファイリング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Swift Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Swift Academyコースには全4レッスンが含まれています。
「SwiftUI Instrumentによるプロファイリング」で何を学びますか?
Instrumentsで再描画のボトルネックを見つけます。 ブラウザで直接実行するハンズオンコードでSwift Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Swift Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSwift Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「SwiftUI Instrumentによるプロファイリング」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSwift Academyレッスンでコードを書いて実行できますか?
はい。すべてのSwift Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Viewのアイデンティティを理解する
- bodyの再評価を最小限にする
- EquatableなViewと@Stateのスコープ
- SwiftUI Instrumentによるプロファイリング