私はJavaの初心者で、NetBeansでこのメモリプロファイルセッションを分析する方法と、メモリリークの検索を支援する方法を知りたいと思っていますか?JavaでこのNetBeansメモリプロファイルセッションを理解する方法(可視メモリリーク)?
"ライブバイト"とはどういう意味ですか?ライブバイトをすべて集計すると、Javaアプリケーションシステムのメモリで使用されるわずかな部分しか得られないことがわかります。 各オブジェクトタイプの割り当てバイトに関する情報がないのはなぜですか? メモリリークの "割り当てられたオブジェクト"記号の値が連続的に増加していますか?
これは、多数の同時スレッドとhttp接続を持つアプリケーションです。 私はスレッドをチェックしていて、うまく動いています - つまり、同時に20スレッド以下です。 私は、http接続にJBOSS Nettyを使用し、HTMLを解析するためにjSoupを使用しました。
あまりにも多く割り当てられたParseErrorのオブジェクトによって引き起こされ、このメモリリークですか?または私はバイト作成スタックトレースでメモリリークのために護衛する必要がありますか?
追加リソース:
EDIT:
私は私のプロジェクトのHTMLクリーナーに追加しました。これは、私はもうパーサーエラーが表示されない原因です。メモリリークの成長は現在、約3〜4倍遅くなります。 800MBのメモリ使用量に達した後、アプリがクラッシュし、NetBeansでヒープを見ることができました。結果:
注:私は私のアプリでどんなのLinkedHashMapを作成していなかったので、それは他のライブラリで作成する必要があります。 TagNodeは、 'HTMLクリーナー'のクリーニング後にクリーンなHTMLを保持するオブジェクトです。私はアプリケーション内に1つのTagNodeオブジェクトしか持っておらず、netty http応答ハンドラ(messageReceivedによって呼び出される)のローカル変数です。
+1ヒープダンプ解析(通常はNetbeansを使用)のためにEclipseに切り替えた後に、微妙なメモリリークを追跡しました。 –