Unter Verwendung des Android-Speichermonitors, insbesondere der "Dump Java Heap" -Funktion, suche ich gerade nach Speicherverlusten in meiner App. Auf der linken Seite der Dump / HPROF-Ansicht von Android Studio gibt es eine Option, um "Analyzer Tasks" zu öffnen, und dort können Sie die Maschine an "Ermittelte ausgelaufene Aktivitäten erkennen" und "Doppelte Strings finden" erkennen. Ich bin verwirrt von der letzteren Option. Was macht es und wie ist es nützlich? Es muss ausgeklügelter sein, als nur den ungeschickten Entwicklern unter uns zu helfen, die dieselbe Zeichenfolge zweimal in ihren Ressourcenordner legen. Die Dokumente sind hier nicht sehr hilfreich (wenn meine Suche gründlich genug war) wie sie nur stellen Sie fest, dass es in Fällen hilft, in denen das Zielprogramm Zeichenfolgen hat, die Werte wiederholen. Wann wäre das der Fall?
Soweit ich weiß, weist dies nur auf doppelte Strings im Speicher hin. Dies ist jedoch nützlich, um mehr als nur Fälle zu finden, in denen dieselbe Zeichenfolge in mehr als eine Ressource eingegeben wurde. Zum Beispiel, wie Strings sind unveränderlich in Java, können Sie leicht mit vielen mehr enden Instanzen von Zeichenketten, die Sie anfangs vielleicht nicht realisieren würden. Wenn Ihre App über viele Zeichenfolgenverkettungscodes verfügt, aber keinen StringBuilder verwendet oder wenn Ihre Anwendung eine Zeichenfolgen- / Textverarbeitung durchführt, ist es relativ einfach, dass unerwartet große Mengen an Zeichenfolgen in den Text aufgenommen werden. Aber umgekehrt kann es oft eine relativ einfache Optimierung sein, um etwas Platz zu gewinnen (sobald man das Problem sieht). Man könnte also sagen, dass es bei dieser Aufgabe mehr um die "Optimierung" des Speichers geht, als um ein Leck zu finden.
Tags und Links android android-studio hprof heap-dump