perf stat
を使用していくつかのハードウェアカウンタを記録しています。カウンタ値を1秒ごとに(または何らかの間隔で)出力するバッチモードがあります。以下に示すように、私の代わりに複数の行の1行に1つの区間の出力をしたい:バッチモードでコマンドの間隔ごとに1行に再フォーマット出力
# time counts events
1.000650887 4015.442880 task-clock (msec) [100.00%]
1.000650887 214 context-switches [100.00%]
1.000650887 2 cpu-migrations [100.00%]
1.000650887 14 page-faults
1.000650887 58,447,833 cycles [83.19%]
1.000650887 50,476,562 stalled-cycles-frontend [83.26%]
1.000650887 18,469,093 stalled-cycles-backend [66.85%]
1.000650887 13,861,731 instructions [83.56%]
1.000650887 3,963,967 branches [83.60%]
1.000650887 180,104 branch-misses [83.21%]
2.004854486 4003.706096 task-clock (msec)
2.004854486 245 context-switches
2.004854486 0 cpu-migrations
2.004854486 30 page-faults
2.004854486 60,750,234 cycles [83.27%]
2.004854486 38,491,129 stalled-cycles-frontend [83.26%]
2.004854486 20,561,260 stalled-cycles-backend [66.95%]
2.004854486 15,651,369 instructions [83.36%]
2.004854486 3,826,936 branches [83.25%]
2.004854486 183,319 branch-misses [83.27%]
それが単一の行として1つの区間のための各カウンタ値とcsv
ファイルとして保存することができます。これを行う簡単な方法はありますか?
のようなもの:
task-clock, context-switches, page-faults, cycles, instructions, branches
4105, 214, 14, 58447833, 13861, 3963967
4003, 245, 30, 60750234, 15651369, 3826936
私PERFのバージョンがある:3.13.11.10
上記の入力に基づいて希望の出力を表示できますか? – GMichael
が編集されました。理想的には、perf statコマンドの実行時に出力を再フォーマットして、それをCSVファイルとして直接保存し、サイクルごとの命令などの他の数量を計算するのに使用することができます。しかし、それが可能でないなら、後処理の解決策もうまくいくでしょう。 – Wajahat
いいえ、後処理なしではできません。 'perf 'は' -x'スイッチを使用した場合と同様に、上記の形式または 'csv'のように出力することができますが、それでも行指向です。 – Jakuje