Perfツール出力について

Perfツール出力について

私は最近私のプラットフォームに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)です。これは低いほど低いです。ただし、お客様のプラットフォームにはカウンターがないため、お客様の例には存在しません。

関連情報