2017-06-09 5 views

答えて

1

グローバルデータ消費(グローバル変数または静的変数として定義されたデータ)もレポートされますか?

いいえ、山地はヒープ専用ツールであり、.DATAと.bssのセクション、直接MMAP-EDメモリを測定しない(それはallocaによって、およびいくつかのローカル変数を格納するために使用されるスタックを測定することができます)。

http://valgrind.org/docs/manual/ms-manual.html

山塊は、ヒーププロファイラです。プログラムが使用するヒープメモリの量を測定します。これには、便利なスペースと、ブックの保持や配置のために割り当てられた余分なバイトの両方が含まれます。デフォルトではそうしていませんが、プログラムのスタックのサイズを測定することもできます。 ...

9.2.8。プロセス

これは、デフォルトの山塊の措置によってのみ、ヒープメモリは、すなわち、メモリはmalloccallocreallocmemalignnewnew[]、およびいくつかの他、同様の機能を割り当てられたことを強調する価値がある中ですべてのメモリを測定します。もちろん、スタックメモリを測定することもできます。これは、mmapmremapbrkなど、低レベルのシステムコールで割り当てられたメモリを直接測定しないことを意味します。 ...

--stacks=<yes|no> [default: no]

スタックプロファイリングを行うべきであるかどうかを指定します。このオプションは、Massifを大幅に遅くするので、デフォルトではオフになっています。 Massifは、起動時にメインスタックのサイズがゼロであることを前提としています。これは真実ではありませんが、そうでなければ正確に行うのは難しいです。さらに、ゼロで開始すると、ユーザプログラムが実際に制御しているメインスタックの部分のサイズが示されます。

+1

Massifは実際に直接mmap-edメモリを測定できます。--pages-as-heap = no | yesオプションを参照してください。 – phd

関連する問題