3

小さな C プログラムの統計を表示したいのですが、開始と終了がある小さなプログラムです。(長時間実行されるプログラムではありません)。メモリへのアクセス、キャッシュ ヒット、コンテキスト スイッチなどの点で、このプログラムを改善したいと考えています。

のパラメーター/proc/[pid]/statusは素晴らしいですが、実行後にそれらを確認する方法が見つかりません。

プロセスの実行が終了した後、このファイルを確認するにはどうすればよいですか?

4

3 に答える 3

5

プログラムの最後にこのsystem()呼び出しを投げると、/proc/[pid]/statusプログラムが終了する直前に stdout に出力されます。

#include <stdlib.h>

int main() {
        system("cat /proc/$PPID/status");
        return 0;
}

のような外部プログラムの場合は+1 valgrind。ユーティリティをデバッグしてプログラムの終了をトラップし、プログラムを変更せずに完全な統計をチェックできます。

于 2012-04-10T18:10:35.420 に答える
4

できません。proc ファイルシステムは、カーネル データ構造へのインターフェイスです。プロセスがなくなると、関連する情報もなくなります。

アプリケーションのパフォーマンスとメモリ フットプリントを改善したい場合は、valgrindとその仲間である cachegrind を調査することをお勧めします。

于 2012-04-10T18:07:05.630 に答える
1

/proc/$pid/プロセスの実行中にのみ存在します。プロセスが終了した後に本当にそれを見たい場合 (そして、VmPeak を超えるとどうなるかわかりません)、プロセスが終了する直前にそれをコピーできます。

于 2012-04-10T18:08:43.813 に答える