Hallo,
aus performancegründen (ca 18 Mio String Objekte zur laufzeit) will ich verhindern dass so gut wie alle Strings im String literal pool sind damit System.gc() den kram auch mal löscht und nicht meinen ram zumüllt mit strings die ich nicht mehr brauche (so gut wie alle). ich muss sehr viele textfiles parsen und kriege dadurch viele stringobjekte, aber ansich sind es nur zahlen die ich in einer arraylist speichere.
ich weiss auch dass es ansich sinnvoll ist den String literal pool zu nutzen(wegen den referenzen ansich weniger speicher bei stringobjekten mit selbem content) aber scheinbar läuft das nicht so wie ich will.
kann ich explizit sagen dass ich einen String NICHT in dem pool haben will?
ich erzeuge pro textfile immer eine parserinstanz, die line für line die zahlen ausliest und in einer globalen arraylist<integer> speichert. (derzeit mit strToKenizer, schreibe gerade auf scanner kram um)
FRAGE:
jemand eine konkrete idee (vllt codeschnipsel/pseudocode) wie ich eine textfile auslese, die werte NICHT als string zwischenspeichern muss und die auch intern nicht in den string literal pool kommen weil ich brauch die werte einfach nur in einer arraylist<integer> und garnicht als string.
vielen dank für jegliche hilfe im vorraus!
aus performancegründen (ca 18 Mio String Objekte zur laufzeit) will ich verhindern dass so gut wie alle Strings im String literal pool sind damit System.gc() den kram auch mal löscht und nicht meinen ram zumüllt mit strings die ich nicht mehr brauche (so gut wie alle). ich muss sehr viele textfiles parsen und kriege dadurch viele stringobjekte, aber ansich sind es nur zahlen die ich in einer arraylist speichere.
ich weiss auch dass es ansich sinnvoll ist den String literal pool zu nutzen(wegen den referenzen ansich weniger speicher bei stringobjekten mit selbem content) aber scheinbar läuft das nicht so wie ich will.
kann ich explizit sagen dass ich einen String NICHT in dem pool haben will?
ich erzeuge pro textfile immer eine parserinstanz, die line für line die zahlen ausliest und in einer globalen arraylist<integer> speichert. (derzeit mit strToKenizer, schreibe gerade auf scanner kram um)
FRAGE:
jemand eine konkrete idee (vllt codeschnipsel/pseudocode) wie ich eine textfile auslese, die werte NICHT als string zwischenspeichern muss und die auch intern nicht in den string literal pool kommen weil ich brauch die werte einfach nur in einer arraylist<integer> und garnicht als string.
vielen dank für jegliche hilfe im vorraus!