XCode26にしてからデバッグのFPSの反映にタイムラグが発生してしまい、、、
FPSが正常でないのか心配になりチェックを!
InstrumentsでFPSチェック
Instruments自体は古くからある強力なツールですが、Xcodeの通常の「実行ボタン(三角マーク)」で動かすデバッグとは、目的も仕組みも根本的に異なります。
仕組みの違いを簡単に整理すると、以下のようになります。
1. 普通のデバッグ(Run)
- 目的: バグを見つける、クラッシュ箇所を特定する、
print文で値を確認する。 - 仕組み: デバッガ(LLDB)がアプリのプロセスに常に密着して、メモリの中身やスレッドの状態を「監視」します。
- デメリット: 監視のオーバーヘッドが大きく、アプリの本来のパフォーマンス(FPSなど)が落ちたり、表示が遅れたりすることがよくあります。
2. Instruments(Profile)
- 目的: パフォーマンス(FPS、メモリ使用量、CPU負荷、バッテリー消費)を正確に「測定」する。
- 仕組み: プロセスを監視するのではなく、OSレベルでアプリの動きを「サンプリング(記録)」します。
- メリット: アプリにかかる負荷(オーバーヘッド)が最小限に抑えられるため、製品版に近い、より正確な数値が得られます。
使い分けのコツ
開発中の『umiカメラ』の場合、以下のように使い分けるとスムーズです。
| 場面 | 使う機能 | 理由 |
| 機能を作っている時 | Run (Debug) | エラーが起きた時に止まってほしいし、ログを見たいから。 |
| FPS設定を検証する時 | Profile (Instruments) | デバッガのせいでFPSが落ちるのを防ぎ、正確な値を知るため。 |
| 動きがカクつく時 | Profile (Instruments) | どの処理(フィルター処理など)がCPUを食っているか特定するため。 |
豆知識:Xcode 26 での変化
Xcode 26からは、通常のデバッグ(Run)中でも「Debug Gauges」にかなりリッチな情報が出るようになりました。しかし、その「リッチさ」ゆえに、Intel Mac環境ではデバッガ自身の処理が追いつかず、今回のような表示のタイムラグが発生しやすくなっています。
なので、**「数値が怪しいな?と思ったら即 Profile(Instruments)」**という今の判断は、エンジニアとして非常に正しいステップです!
1. Instruments(インスツルメンツ)の起動方法
Xcodeのデバッグゲージよりも詳細、かつリアルタイムにFPSや負荷を計測できるツールです。
- Xcodeのメニューバー(画面最上部)から
Productをクリックします。 - リストの中から
Profile(ショートカット:Command + I)を選択します。 - ビルドが完了すると、別のアプリ(Instruments)が立ち上がります。
- テンプレート選択画面が出るので、
Core Animation(またはGraphics)を選択してChooseを押します。 - 左上の赤い
●(Record) ボタンを押すとアプリが実機で起動し、リアルタイムのFPSがグラフで表示されます。
+ Instrument > Core Animation FPSを選択


赤丸でアプリ開始され、ログが表示されます

FPS問題なく変更できていることを確認しました^^v


コメント