2012-03-27 7 views
1

私はC/C++でプログラムを作成し、ソースコードを持っているとします。 プログラム実行中の総メモリを知りたいです。プログラムで使用されているスペースの合計を計算するにはどうすればよいですか?

誰かが "malloc"と "hook"について何か言及しました スペースをトレースする方法はありますか?

+3

私は「valgrindについて」と言っています – Tom

+2

これはプラットフォームに依存します。どのプラットフォームを実行していますか? –

+0

私は一般に、これは解決不可能な問題だと思います。プログラムが完全に静的でないか(そうであれば、なぜそれを書いたのですか?)、または非常に単純な場合、プログラムのフットプリントは実行ごとに変化する可能性があります。 – jpm

答えて

2

Linuxを実行している場合、またはUnixベースのものを使用している場合は、おそらくValgrindを使用する可能性があります。 Valgrindはプログラムを実行し、すべてのメモリ割り当てを傍受し、終了したら統計情報を出力します。メモリリークやメモリ使用量をチェックするのに非常に便利なツールです。あなたがWindowsを実行している場合、私はヒントを持っていません。

+0

特にvalgrindツール "massif"はヒーププロファイラーであり、プログラムの使用期間中の使用状況を表示します。 – caf

0

Windowsのlinuxまたはtaskmgrで "top"コマンドを使用すると、メモリ使用量を監視できます。

0

のLinuxライクなシステムでは、実行時にプログラムによって使用されるメモリの総量を見つけるために

/proc/self 

からの情報を使用することができます。また、プロセスに関する他の多くの情報が含まれています。詳しくは

man 5 proc 

を参照してください。

関連する問題