問題タブ [massif]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - valgrind、massif、top、および pmap の比較
アプリケーションがリークしているかどうかを理解しようとしています。
アプリケーションを実行するとき、定期的に実行pmapして観察します。
私は走っtopて観察します:
「RES」と「書き込み可能/プライベート」の増加により、リークが疑われます。ただし、実行valgrind中に大きなリークは検出されず、実行を中止すると、常に約 20Mb の到達可能なメモリが表示されます。
実行するvalgrind --tool=massifと、20Mb フラットも表示されます。

質問: なぜ valgrind と massif は私のプログラムが一貫して 20Mb のメモリを使用していると教えてくれるのに、top と pmap は使用量が増えていると教えてくれるのか説明してもらえますか?
c++11 - valgrind massif ツールを使用すると、結果ファイルが作成されない
私は参考のためにこのチュートリアルに従っています: http://valgrind.org/docs/manual/ms-manual.html
次のコマンドを使用してアプリケーションのプロファイリングを行う場合: valgrind --tool=massif --time-unit=B ./run.o 終了しますが、出力ファイルは生成されません。上記のコマンドを使用して実行中のログを次に示します。
https://www.dropbox.com/s/yae78rm9wmdbph1/ValGring_massif_Log?dl=0
massif.out.xxxxx ファイルが生成されない理由を教えてください。
c++ - 解放後に低レベルの割り当てルーチンによって解放されないように見えるメモリ
私は複雑な C++ アプリケーション、数万行、多くのネストされたオブジェクトをデバッグしています (メモリの断片化に関連する可能性があるため、これを言っています)、OMP/MPI 並列化もされています (ただし、ここでは単一ノードを実行しています)。
基本的なループは問題のチャンクを処理し、チャンクごとに関連するすべてのオブジェクトをループして何かを実行します。これらのオブジェクトは、可変メンバーを介して中間結果を内部的にキャッシュします。最後に、deCache ルーチンが呼び出され、これらすべての中間結果がクリアされ、次のチャンクに進みます。問題は、このステップでメモリが解放されないように見え、プログラムがいくつかのチャンクの後にメモリ不足になることです。
デバッガーで valgrind を実行し、チャンク処理の最後、デキャッシュの直前とデキャッシュの直後に詳細なスナップショップを発行しました。これは、予想どおり、ヒープのメモリ消費量が 23Gb から 820Mb になったことを示しています。
落ちすぎ
これらの数値は、まさに私が予想した範囲内です。問題は、一番上に示されているメモリがほとんど減少しないことです (実際、しばらくするとメモリが不足します)。--stacks-as-heap を指定して massif を実行すると、メモリが実際に解放されていないことが示されます。
かろうじて
すべてのベクトルの割り当てを正しく解除し (空のベクトルによるスワップを使用)、従来のメモリ リーク (つまり、自動ポインタの非常に一貫した使用など) がないことを確信しています。ヒープとしてのページ) を実行します。
何が起こっているのでしょうか?ヒープとしてのページの実行でのみ表示されるエラーの種類は何ですか? メモリの断片化の問題である可能性はありますか? どうやってそれを修正しますか?
c - 「page-as-heap」オプションで valgrind massif を実行できない
次のオプションを使用して、Ubuntu 14.04 で Valgrind を実行しようとしています。
しかし、次のエラーが発生します。
このオプションは、いくつかの場所で説明されています (実際には、valgrind のマニュアルhttp://valgrind.org/docs/manual/ms-manual.htmlで言及されています)、massif で使用します。
このツール/オプションを利用できるようにするにはどうすればよいですか?
ありがとう