ファイル入力で「perf」を再利用

ファイル入力で「perf」を再利用

perfプログラムのパフォーマンスを分析するために使用できます。

prgrmファイルの入力を使用してプログラムのパフォーマンスをテストすると仮定すると、次のことを実行できます。

perf stat prgrm < inp.dat

これで実験を何度も繰り返す場合は、このオプションを使用できます--repeat

perf stat --repeat 50 prgrm < inp.dat

動作しません。理由を理解します。をinp.dat介して"パイプ"され、perf2番目の実行では、最初の実行がファイル全体を"消費"したので、stdinへの入力が最後に達しました。

inp.datしかし、毎回最初から読み始めて繰り返し実験を実行できますか?

ベストアンサー1

プログラムが入力ファイル名を取得できない場合は、各パフォーマンス統計の繰り返しでシェルを使用できます。私はあなたが望むすべてを小さなシェルスクリプトに入れます。

テスト-prgrm.sh:

#!/bin/sh
prgrm < inp.data

次に、次を実行します。

perf stat --repeat 50 ./test-prgrm.sh

ただし、中間シェルスクリプトファイルがなくても、sh -cを使用してこれを実行できます。

perf stat --repeat 50 sh -c 'prgrm < inp.data'

デフォルトでは、perfは呼び出されたプロセスのすべての子項目のカウンタを保持します。シェルの実行にはいくつかの例がありますが、これはプログラムの実行に比べておそらく小さなオーバーヘッドです。

おすすめ記事