デバッグ/プロファイリング
パフォーマンスのリグレッション、最適化されていない新機能、または単に不明な要因がパフォーマンスに影響を与える場合、アプリケーションをプロファイルする必要があるかもしれません。Wikipediaによると:
- ソフトウェアエンジニアリングにおいて、プロファイリング(「プログラムプロファイリング」、「ソフトウェアプロファイリング」)は、動的プログラム解析の一種であり、プログラムの空間(メモリ)または時間の複雑さ、特定の命令の使用、または関数呼び出しの頻度と持続時間を測定します。最も一般的には、プロファイリング情報はプログラムの最適化、さらに具体的にはパフォーマンスエンジニアリングに役立ちます。
インストール
デバッグシンボルの取得
解釈可能な結果を得るためには、デバッグするアプリケーションのデバッグシンボルが必須です。手動でのデバッグ情報取得を参照してください。perf はまだ debuginfod をサポートしていないため、デバッグシンボルは手動で取得する必要があります。
デバッグシンボルなしでアプリケーションをプロファイルまたはデバッグしようとすると、実際の関数名の代わりにポインタしか表示されず、ほとんど役に立ちません。
使用方法
gdb と同様に、アプリケーションは perf 内で実行されます。
$ perf record -g -- command
これにより、データが perf.data
に記録されます。プログラムが終了したら、次のコマンドで結果を表示します:
$ perf report --stdio
より見やすい表示を希望する場合は、cargo-flamegraph を使用することを検討してください。
バグをアップストリームに報告する場合は、perf.data
ファイルを提出してください。