Java GC-Optimierung für Zeichenfolgen

8

Profiling der Anwendung Ich habe herausgefunden, dass es viele Strings auf Heap gibt.

In meiner Situation werden Zeichenfolgen auf Heap erstellt und nicht interniert, und sie sind keine Literale.

Gibt es bestimmte GC-Optimierungstechniken, wenn die Anzahl der Strings in der Anwendung sehr hoch ist?

Ich bin über die GC-Einstellungen gestolpert -XX: + UseCompressedStrings oder -XX + UseStringCache , aber ich bin mir nicht sicher, ob das hilft. Hat irgendjemand diese Einstellungen versucht?

Java Version "1.6.0_22"
Java (TM) SE Laufzeitumgebung (Build 1.6.0_22-b04)
Java HotSpot (TM) 64-Bit-Server-VM (Build 17.1-b03, gemischter Modus)

    
Srujan Kumar Gulla 09.04.2013, 18:25
quelle

1 Antwort

8

Bezogen auf -XX:+UseCompressedStrings sollten Sie sich diese Frage ansehen: Unterstützung für komprimierte Zeichenfolgen, die in HotSpot JVM gelöscht werden?

Und, in Bezug auf -XX+UseStringCache , schauen Sie sich an: JVM -XX: + StringCache Argument?

Übrigens. Java 7 enthält nützliche Funktionen, mit denen Sie den String-Cache optimieren können, wenn Sie die intern gespeicherten Strings verwenden. Siehe -XX:+PrintSTringTableStatistics und -XX:StringTableSize=n . Auf diese Weise können Sie die String-Cache-Größe optimieren.

    
Ales 09.04.2013, 18:31
quelle