パフォーマンスシステムのパフォーマンスカウンタレジスタにアクセスし、システムのパフォーマンスを分析するためにユーザーにメトリックを提供するツールです。
私が疑問に思うのは、コードの一部を読んだときです。 perfがメモリマップされた領域から何かを読み込み(カーネルが書き込む領域を読み取るような感じ)、/proc/modulesも読みますが、実際にはハードウェアレジスタの読み込みに関する内容が見つかりません。すべてのコードマシン。
- perfは実際にどのようにサンプルを記録しますか?
- 実行可能ファイルが実行されている機能をどのように識別しますか?
- これらのシンボルをどのように認識しますか?
カーネルにはパフォーマンスモジュールもあります(ユーザースペースで実行されているアプリケーションに「パフォーマンス」を渡す/ツールの他に)?
誰もが内部の仕組みについてもっと教えてもらえますか?