Perfを使用してC++プログラムの実行時間を計測してみる

Perfでプログラムの実行時間を計測してみる
仕事で行ったことは一度あるが、すでに完成されたシステムのようなものだったので、手元での設定から行ってみる
調査が必要なタスクだったので調査時に見たリンクをリストしておく(時間があれば結果として不要だったリンクを削り考察メモも書く)
-
分析計の記事、Perfの記載は少し薄め
https://qiita.com/otappi/items/6363eaf19bebae66a481#perf-プロファイラ -
DEV Community でいいねの数が多い記事、これはそこそこ参考になりそう
https://dev.to/etcwilde/perf---perfect-profiling-of-cc-on-linux-of -
特定のソースリポジトリに対する手順書だろうか
https://github.com/springmeyer/profiling-guide -
RUSTの記事だがflame graphが可視性がよく良さそうだった
https://qiita.com/KentaAdachi/items/5a266984c074d29e2e32- またdtraceの使用方法も記載されていた
-
公式Documentは以下のようだ
https://perfwiki.github.io/main/ -
また、こちらの動画は参考になりそうだった
https://www.youtube.com/watch?v=kjcg0R49qu0

公式ドキュメントを読んでみる
perf,これは Linuxコマンド (perf_events とも呼ばれる)の wiki ページです。perfは強力で、CPU パフォーマンス カウンター、トレースポイント、kprobe、uprobes (動的トレース) を計測できます。軽量のプロファイリングが可能です。Linux カーネルの にも含まれておりtools/perf、頻繁に更新および機能強化されています。
また、
詳細については、チュートリアルの例、またはトップダウン分析の実行方法を参照してください。
との記載があり、以下のページが紹介されていた

以下の動画を見てみた
以下の部分の関数ごとの呼び出しみたいなものが知りたいのだが、perfでそのようなものは出していないかも