このページでは

CPU使用率の分析

Perf を使用すると、Linux デスクトップおよび組み込みデバイス上で、アプリケーションの CPU およびメモリ使用状況を分析できます。Performance Analyzer は、Linux カーネルに同梱されている Perf ツールを使用して、アプリケーションのコールチェーンのスナップショットを定期的に取得し、それらをタイムラインビューまたはフレームグラフとして可視化します。

通常、Performance Analyzer では、プロファイリング対象のバイナリに対するデバッグシンボルが必要です。プロファイル用ビルドでは、デバッグシンボルが別途用意された最適化されたバイナリが生成されるため、プロファイリングにはそれらを使用してください。

データの収集

データを収集するには、以下の方法で Performance Analyzer を起動します。

  • Analyze >Performance Analyzer に移動し、現在のアプリケーションをプロファイリングします。
  • パフォーマンス分析を開始する 」(Start )を選択して、Performance Analyzer からアプリケーションを起動します。

    パフォーマンスアナライザーのツールバー

注: データ収集が自動的に開始されない場合は 、[プロフィールデータの収集を開始する ] (Collect profile data) を選択してください。

アプリケーションの分析を開始すると、アプリケーションが起動し、Performance Analyzer が直ちにデータの収集を開始します。 これは、Recorded に表示される経過時間で確認できます。ただし、データは Perf ツールとQt Creator にバンドルされている追加のヘルパープログラムを通過し、両方がその場でデータをバッファリングおよび処理するため、データが生成されてから数秒後にQt Creator に到着する場合があります。Processing delay には、この遅延の推定値が表示されます。

データの収集は、プロフィールデータの収集を停止してくださいStop collecting profile data )を選択するか、アプリケーションを閉じるまで続きます。

Stop collecting profile data 」を選択すると、アプリケーションの起動時にデータ収集が自動的に開始される機能がオフになります。プロファイルデータは引き続き生成されますが、「Qt Creator 」では、このボタンが再度選択されるまでデータは破棄されます。

デバイス上のメモリ使用量のプロファイリング

ターゲットデバイスでのメモリ使用量をプロファイリングするためのトレースポイントを作成するには:

  • [Analyze ] > [Performance Analyzer Options ] > [Create Memory Trace Points] の順に選択します。
  • Performance Analyzer ツールバーで「ターゲットデバイス上でメモリプロファイリング用のトレースポイントを作成する 」を選択します。

Create Memory Trace Points 」ダイアログで、実行するスクリプトを編集します。

「メモリトレースポイントの作成」ダイアログ

スクリプトを root として実行するために root 権限が必要な場合は、[Elevate privileges using] で使用する権限を選択してください。

OK 」を選択して、スクリプトを実行します。

トレースポイントのイベントを追加するには、「イベントタイプの選択」を参照してください。

メモリトレースを記録すると、タイムラインのサンプル行に使用状況のグラフが表示され、フレームグラフでメモリの割り当て、ピーク、および解放を確認できます。

qmake プロジェクト用に個別のデバッグ情報を生成する

リリース用にコンパイルされたアプリケーションについてもデバッグシンボルを生成するビルド構成を手動で設定するには、qmake プロジェクトのビルド設定を編集します。

  1. Projects 」>「Build Settings 」に移動します。
  2. Separate debug info 」で、「Enable 」を選択します。
  3. Yes 」を選択して、プロジェクトを再コンパイルします。

「ハウツー:分析」、「アナライザ」、「パフォーマンスアナライザ」、「コードの分析も参照してください

Copyright © The Qt Company Ltd. and other contributors. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.