Facebook XMPP サーバーに接続するために smack ライブラリを使用しています。
私のローカル環境のデバッグモードでは、時々メモリリークが発生しました。私は持っている:
- ヒープダンプを確認し、
- JNI グローバル リファレンスが常に smack ライブラリの PacketWriter オブジェクトを参照していることがわかりました。
- PacketWriter には、出力作業を行う 1 つのスレッドが含まれています
質問: JNI グローバル参照の原因は何ですか? (もちろん、サーバーで使用される JNI はありません)
JNI グローバル参照は、サーバーのデバッグ モードが原因ですか?
私はすでに質問をチェックしました:JNIグローバル参照メモリリークの原因を特定するにはどうすればよいですか? .
これはちょっとしたソース コード ビューです。
ヒープ ダンプを 更新すると非常に大きいため、ヒープに関するVisualVMのスクリーンショットを投稿します。