GNU/Linux >> Linux の 問題 >  >> Linux

メモリ使用量をプロファイリングする方法は?

Valgrind ツールの一部である massif を使用します。 massif-visualizer はデータをグラフ化するのに役立ちます。または ms_print を使用することもできます コマンド。


Google が提供する gperftools で提供されるヒープ プロファイラーを試してください。私は常にソースからビルドしてきましたが、いくつかの Linux ディストリビューションでプリコンパイル済みパッケージとして入手できます。

動的ライブラリを実行可能ファイルにリンクしてプログラムを実行するのと同じくらい簡単に使用できます。すべての動的メモリ割り当てに関する情報を収集し (私が確認した限り)、メモリ ダンプ をディスクに保存します。 次のいずれかが発生するたび:

  • HEAP_PROFILE_ALLOCATION_INTERVAL バイトがプログラムによって割り当てられています (デフォルト:1Gb)
  • 最高水準のメモリ使用量マークが HEAP_PROFILE_INUSE_INTERVAL 増加します バイト (デフォルト:100Mb)
  • HEAP_PROFILE_TIME_INTERVAL 秒が経過しました (デフォルト:非アクティブ)
  • 明示的に HeapProfilerDump() を呼び出します コードから

私の経験では、最後の方法が最も便利です。ヒープ使用量のスナップショットを作成するタイミングを正確に制御できるからです。 次に、2 つの異なるスナップショットを比較して、何が問題なのかを確認してください。

最終的に、テキストやグラフィック (有向グラフの形式) など、いくつかの可能な出力形式があります。

このツールを使用することで、Massif では見つけられなかった誤ったメモリ使用量を見つけることができました。


Linux
  1. Linuxのメモリ使用量

  2. Linux ベースのサーバーでメモリ使用量を確認する方法

  3. CPU使用率を取得する方法

  1. Linuxでユーザーのメモリ使用量を見つける方法

  2. アプリケーションのメモリ使用量を制限するには?

  3. Linuxでアプリケーションによるメモリ使用量を制限するには?

  1. Linuxpmapコマンドでプロセスのメモリ使用量を確認する方法

  2. パイプラインはメモリ使用量をどのように制限しますか?

  3. 実際のメモリ使用量でソートされた上位プロセスを確認するには?