私は最近私のプラットフォームにPerfツールをインストールし、それを使って私のプラットフォームを分析したいと思います。
スタンドアロンアプリケーションの分析を開始しました。私が使用するコマンドは次のとおりです。
perf start ./helloworld
Performance counter stats for './helloworld':
4.555957 task-clock # 0.000 CPUs utilized
1 context-switches # 0.219 K/sec
0 cpu-migrations # 0.000 K/sec
124 page-faults # 0.027 M/sec
<not supported> cycles
<not supported> stalled-cycles-frontend
<not supported> stalled-cycles-backend
<not supported> instructions
<not supported> branches
<not supported> branch-misses
60.005519331 seconds time elapsed
これで、この出力をどのように解釈するのかわかりません。期待に応えますか?
また、ここのフィールドで何をすべきか、<not supported>
コマンドを実行する前にこのフィールドをサポートするには何を有効にする必要がありますか?
答え1
「<サポートされていません>」メッセージは、プラットフォームがパフォーマンスインスツルメンテーションカウンタ(PIC)とも呼ばれる特定のプロセッサのパフォーマンスモニタリングユニット(PMU)ハードウェアカウンタをサポートしていないことを意味しますperf
。これは通常、仮想化環境で発生します。ベアメタルでは、これらのカウンタを見ることができます(特別なCPUタイプを使用しない限り)。
仮想化ソフトウェアがゲストに対してハードウェアカウンタを有効にできる場合は、問題を解決できます。たとえば、最新バージョンのVMwareにはこれらのオプションがあります。
説明すると、カウンターが有効になっている場合に印刷される最も有用なメトリックの1つは、メモリI / Oを表すIPC(Instructions Per Cycle)です。これは低いほど低いです。ただし、お客様のプラットフォームにはカウンターがないため、お客様の例には存在しません。