In meiner Android-Anwendung namens "PriceDekho" nimmt der Cache-Hintergrundprozess zu viel Platz in Anspruch. Zuerst, wenn ich die Anwendung starte, dauert die Anwendung etwa 30MB (ich denke, es ist OK), aber das Problem ist, wenn ich die Anwendungsseiten surfe, dann steigt diese Größe kontinuierlich bis zu (200 MB). Diese Anwendung "Cache Hintergrund Prozess" variiert auch mit der mobilen RAM-Größe. Wenn die mobile RAM-Größe 2 GB beträgt, reicht diese Anwendung "Cache-Hintergrund-Prozess" Größe bis zu 500 bis 700 MB.
Meine Anwendung hat nur 5 bis 6 Bildschirme. Ich muss nur die zwischengespeicherte Hintergrundgröße stabilisieren.
Wie kann ich die Cachegröße der Anwendung löschen? Bitte helfen.
Es klingt wie Speicherlecks, die der Garbage Collector nicht entfernen kann. Zum Beispiel, wenn Sie einen Verweis auf Context
von einer Nicht-Kontext-Klasse benötigen, die dort nie veröffentlicht wird. Die meiste Zeit wird Android Studio darauf hinweisen, aber Sie können versuchen, LeakCanary zu verwenden und nach ihnen zu suchen.
Fügen Sie die Abhängigkeit
hinzu %Vor% und verwende es in deiner Application
-Klasse. Erstellen Sie einen, wenn Sie ihn noch nicht haben.
Der Cache-Hintergrund-Prozess hängt sicherlich von der RAM-Größe ab, da das System mehr Daten zwischenspeichern kann, wenn mehr Speicher verfügbar ist.
Jedoch kann das zunehmende Muster der Speicherbelegung durch die Anwendung entweder auf Speicherlecks oder auf riesige Objekte zurückzuführen sein, die im Hintergrund erzeugt werden. Der Garbage Collector ist kein Allwetter-Freund und neigt dazu, Speicherlecks aufgrund programmatischer Fehler zu ignorieren.
Da für die Überprüfung kein Code zur Verfügung steht, sind einige triviale Fragen zu stellen:
Sind die Listener nicht registriert, falls vorhanden?
Wie oben angedeutet, wird LeakCanary in diesem Fall sicher viel nützlicher sein als der Android Monitor.
Tags und Links java memory-leaks android caching memory-management