In meinem Programm ich tue:Wie abfangen Deserialisierung Jackson JsonNodes
private static final ObjectMapper MAPPER = new GridJettyObjectMapper();
....
JsonNode node = MAPPER.readTree(content);
Meine JSON viele SAME Strings enthält, und ich würde abfangen readTree() -Methode wie und WeakHashMap setzen in TextNodes gecached Strings (mit beispielsweise).
Ich hoffe, dass dies mir eine Menge Speicher sparen wird. Für jetzt meine App nur OOME und in Heap-Dump sehe ich Millionen von gleichen Strings in TextNodes.
Irgendeine Idee, wie man das macht?
Sie können '-XX: + UseStringDeduplication' als JVM-Flag für neue Versionen von Java 8 und höher verwenden. Dies wird Speicher sparen, indem die JVM die Strings nur einmal im Speicher hält. – Adam
Danke, Adam. Aber ich bin auf Java 7 und kann diese Option nicht verwenden. – kuaw26