2017-06-15 1 views
0

Ich habe ein Problem mit einem Leck auf dem nativen Heap von In Android in meiner App festgestellt. Das Leck scheint von LinkedBlockingQueue zu kommen, das einfach weiter wächst, ohne aufgeräumt zu werden.Undichte LinkedBlockingQueue

Wenn Sie sich das Aussehen unten ansehen, hat der native Heap insgesamt 478M und er wächst weiter (er begann bei 20M und wächst alle paar Sekunden um 250k). Der JVM-Heap funktioniert ordnungsgemäß und bleibt auf demselben Niveau um 100M. Meine App benutzt ihren eigenen Netzwerkcode, aber selbst wenn sie ausgeschaltet ist und die App nur dort "sitzt", hat sie immer noch dieses Leck.

Ich habe festgestellt, dass die LinkedBlockingQueues auf eine com.android.okhttp.ConnectionPool-Instanz verweisen (die gleiche). Ich verwende okhttp nirgendwo in meinem Code. Ich benutze Firebase mit der Unterstützung von Config, Datenbank und Speicher. Aber mit Ausnahme der Config, die den Listener angeschlossen hat, sind die anderen Dienste nicht, während ich teste.

Console Log

Der Schnappschuss zeigt mein Java Heap Dump. Die LinkedBlockingQueue verfügt über 6029 Instanzen und fast 300M des beibehaltenen Speichers. Diese Zahl wächst mit dem nativen Heap-Anstieg, also gehe ich davon aus, dass sie verwandt sind.

hpref classes

Der Schnappschuss zeigt einen der LinkedBlockingQueue $ Knoten Fälle, in denen das Element der Verbindungspool ist. Sie sehen alle gleich aus und zeigen auf den gleichen Gegenstand.

hpref instance

Ich traf nie ein Speicherleck so und nicht sicher, was der Grund dafür ist. Ich würde mich freuen, wenn einer von euch sich Gedanken darüber machen würde, was es sein könnte oder ob Sie so ein Problem hatten.

Antwort

0

Ich fand es heraus. Das hatte nichts mit meiner App oder Firebase zu tun. Es scheint, dass Android Studio mit ADB-Integration die Ursache gewesen sein könnte. Wenn ich die Integration deaktiviere und Android Device Monitor für den Speicher und das Abrufen der Protokolle verwendet. Der native Heap wächst nicht und bleibt ungefähr auf demselben Niveau.

Verwandte Themen