Hallo,
Die Stringkonkatenation ist ja denke ich mal nicht gerade das schnellste. Vor allem wenn ich einen ganzen Text z.B. Char für Char aneinanderhänge muss jedesmal Speicher für 1 weiteren Char angefordert werden...
Wenn ich jetzt die Länge eines Strings mit SetLength auf sagen wir 200 stelle und somit auch schon mal dementsprechend viel Speicherplatz auf einen Rutsch anfordere und dann wieder schreibe S := S + 'A'; (z.B.).. Wird dann wieder Speicher angefordert oder geht das dann performanter weil noch genug verfügbar ist?
Also konkret:
Delphi-Quellcode:
var Str1, Str2: String;
begin
// Str1
Str1 := '';
for i:= 1 to 100000 do
Str1 := Str1 + 'A';
// Str2
SetLength(Str2,100000);
FillChar(Str2[1],100000,0);
for i:= 1 to 100000 do
Str2 := Str2 + 'A';
Welche der beiden Schleifen ist schneller?
Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."