Zitat von
Phoenix:
Für mich gerade logische Erklärung:
Du benutzt ziemlich intensiv 'copy'. Das erzeugt eine String-Variable. Da Du das Ergebnis sofort verwendest und nirgends 'manuell' zwischenspeicherst, muss Delphi die Variable ja irgendwo hinpacken. Jedes einzelne Copy braucht also Speicher, der solange belegt wird, bis die Funktion beendet ist. (Kann auch sein, dass ich mich hier irre. Ich kenne die interna dafür nicht gut genug).
Ja, diese Erfahrung habe ich auch gemacht. Zumindestens in Delphi 7 ist es tatsächlich so, dass alle temporären Strings die in einer Prozedur anfallen erst am Ende freigegeben werden.