2017-06-19 8 views
0

現在、Ubuntu 16.04仮想マシンにC++アプリケーションを開発中です。私は最大値の範囲を見つけるために、アプリケーションの総メモリ使用量(スタックとヒープ)を測定する必要があります。私は、メモリプロファイリングではかなり新しいですので、私は次のようにvalgrindのを使用して終了:コマンド:valgrindの大容量でC++アプリケーションの最大メモリ使用量(スタックとヒープ)を測定する

valgrind --tool=massif --stacks=yes ./c++_app 
ms_print massif.out.<PID> 

を、私は、関連するグラフ上の12.5メガバイトのスパイクを持って復号化されたファイルでは。 反対側では、gnome-system-monitorは最大メモリー値として25 MBを示しました。

2つの結果のどちらを信頼する必要がありますか?他のソフトウェアとのメモリ使用量を相互にチェックする必要がありますか?

+0

また、/ usr/bin/time -v YourProgramを試して、最大常駐セットを確認することもできます。ところで、あなたはおそらく 'MB(メガバイト)ではなくmb(ミリバイト)を意味します。 –

+0

@Mark Setchell Correct私はMB(メガバイト)を意味しました。私はそれを修正します。 – dk13

答えて

1

両方の結果が正しいと思われます。 大容量プロファイルはヒープし、場合によってはスタックします。 一方、システムモニタは、実行中のイメージのサイズ(静的データメモリも含む)を含む、合計メモリ使用量に関する情報を提供します。

あなたの質問には、大量の結果に頼るべきです。

+0

システムモニタが提供する番号には、大量の大量メールの内部簿記も含まれます。 – kolrabi

関連する問題