2016-05-02 16 views
0

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

+0

上記の入力に基づいて希望の出力を表示できますか? – GMichael

+0

が編集されました。理想的には、perf statコマンドの実行時に出力を再フォーマットして、それをCSVファイルとして直接保存し、サイクルごとの命令などの他の数量を計算するのに使用することができます。しかし、それが可能でないなら、後処理の解決策もうまくいくでしょう。 – Wajahat

+1

いいえ、後処理なしではできません。 'perf 'は' -x'スイッチを使用した場合と同様に、上記の形式または 'csv'のように出力することができますが、それでも行指向です。 – Jakuje

答えて

1

私はここにすべて追加していない

awk '/task-clock/{printf("%d ", $2);} /page-faults/{printf("%d ", $2);} /branch-misses/{printf("%d\n", $2);} ' 

のようなものを通じてperf statの出力を渡しますフィールドとヘッダ。追加はかなり明白です

+0

出力後の後処理ソリューションをファイルに保存しました。実行時にそれを行う方法はありますか?それとも全く不可能なのでしょうか? – Wajahat

+0

後処理ではありません。あなたは 'perf stat | awk .... '。 'awk'プログラムに' BEGIN {print "タスクページブランチ\ n";} 'を追加してください。 – GMichael

+0

私はそれが動作しないと思っています。 – Wajahat

関連する問題