私のアプリでアンドロイドのネイティブヒープのリークに問題が発生しました。リークはLinkedBlockingQueueから来ているように見えます。LinkedBlockingQueueはクリーンアップされずにそのまま成長しています。Leaking LinkedBlockingQueue
以下のように見てみると、ネイティブヒープは合計478Mを持ち、成長を続けます(20Mから始まり、数秒ごとに約250kずつ増加し続けます)。 JVMヒープは正しく動作しており、約100Mと同じレベルにとどまります。私のアプリは独自のネットワークコードを使用していますが、それをオフにしてもアプリケーションはちょうどそこに「座って」いても、まだこのリークがあります。
私は、LinkedBlockingQueuesがcom.android.okhttp.ConnectionPoolインスタンス(同じもの)を指していることを確認しました。私はコード内でどこでもokhttpを使用しません。私は設定、データベース、およびストレージのサポートでfirebaseを使用します。しかし、リスナーを接続しているconfigを除いて、私がテストしている間は他のサービスはありません。
スナップショットは、以下の私のJavaヒープ・ダンプを示しています。 LinkedBlockingQueueには6029のインスタンスと約300Mの保持されたメモリがあります。この数はネイティブのヒープの増加とともに増加するので、関係があると仮定しています。
スナップショットは以下の項目は、接続プールでLinkedBlockingQueue $ノード・インスタンスの一つを示します。それらはすべて同じように見え、同じアイテムを指しています。
は、私はそのようなメモリリークが発生したことはありませんし、その理由が何であるかわかりません。私はあなたの誰かがそれが何であるかについての考えを持っている場合、またはあなたが以前にそのような問題を抱えていた場合、感謝します。