小さな C プログラムの統計を表示したいのですが、開始と終了がある小さなプログラムです。(長時間実行されるプログラムではありません)。メモリへのアクセス、キャッシュ ヒット、コンテキスト スイッチなどの点で、このプログラムを改善したいと考えています。
のパラメーター/proc/[pid]/status
は素晴らしいですが、実行後にそれらを確認する方法が見つかりません。
プロセスの実行が終了した後、このファイルを確認するにはどうすればよいですか?
小さな C プログラムの統計を表示したいのですが、開始と終了がある小さなプログラムです。(長時間実行されるプログラムではありません)。メモリへのアクセス、キャッシュ ヒット、コンテキスト スイッチなどの点で、このプログラムを改善したいと考えています。
のパラメーター/proc/[pid]/status
は素晴らしいですが、実行後にそれらを確認する方法が見つかりません。
プロセスの実行が終了した後、このファイルを確認するにはどうすればよいですか?
プログラムの最後にこのsystem()
呼び出しを投げると、/proc/[pid]/status
プログラムが終了する直前に stdout に出力されます。
#include <stdlib.h>
int main() {
system("cat /proc/$PPID/status");
return 0;
}
のような外部プログラムの場合は+1 valgrind
。ユーティリティをデバッグしてプログラムの終了をトラップし、プログラムを変更せずに完全な統計をチェックできます。
できません。proc ファイルシステムは、カーネル データ構造へのインターフェイスです。プロセスがなくなると、関連する情報もなくなります。
アプリケーションのパフォーマンスとメモリ フットプリントを改善したい場合は、valgrindとその仲間である cachegrind を調査することをお勧めします。
/proc/$pid/
プロセスの実行中にのみ存在します。プロセスが終了した後に本当にそれを見たい場合 (そして、VmPeak を超えるとどうなるかわかりません)、プロセスが終了する直前にそれをコピーできます。