Ich habe einen seeeeehr langen String.
Darin muss ich viele Ersetzungen vornehmen. Das mache ich in einer for-Schleife (für jede Ersetzung eine Iteration)
Das geht zwar einigermaßen schnell, Problem ist aber der Speicherverbrauch.
Wenn in meine Klasse 2x parallell laufen lasse, wird schon gemotzt, dass der virtuelle Speicher aus ist.
Wenn der String noch größer wird / noch mehr Ersetzungen notwendig sind, dann ist wohl OutOfMemoryException zu erwarten.
Ich vermute, dass es mit dem replace zusammenhängt, dass ja viele tausend Mal auf den langen String angewandt wird. Liegt der String vielmals im Speicher?
Wie könnte man das besser machen, ohne auf eine gute Performance zu verzichten?
Danke
Darin muss ich viele Ersetzungen vornehmen. Das mache ich in einer for-Schleife (für jede Ersetzung eine Iteration)
Code:
String str = "seeeeeeeeehr lang usw. ..... ";
for(int i = 0; i<=100000; i++)
{
str = str.replace(key[i], value[i]);
}
Das geht zwar einigermaßen schnell, Problem ist aber der Speicherverbrauch.
Wenn in meine Klasse 2x parallell laufen lasse, wird schon gemotzt, dass der virtuelle Speicher aus ist.
Wenn der String noch größer wird / noch mehr Ersetzungen notwendig sind, dann ist wohl OutOfMemoryException zu erwarten.
Ich vermute, dass es mit dem replace zusammenhängt, dass ja viele tausend Mal auf den langen String angewandt wird. Liegt der String vielmals im Speicher?
Wie könnte man das besser machen, ohne auf eine gute Performance zu verzichten?
Danke