Hallo zusammen!
Vor längerer Zeit hab ich in nem Buch (Doberanz/Kowalski: Borland Delphi 5 - Grundlagen und Profiwissen) gelesen, man solle doch wo es nicht nötig ist das Semikolon nach einem Befehl weglassen, also wenn ein end auf den Befehl folgt. Der Grund: Das Semikolon verursacht, sofern keine Anweisung mehr folgt, eine sinnlose Leeranweisung. Ich hab mir daraufhin angewöhnt wo es nur geht den Strichpunkt wegzulassen, geht auch ganz automatisch bei mir inzwischen. Ich sehe das aber sonst bei (fast) keinem, und sogar in den Borland Demos wird nicht darauf geachtet. Also hab ich mich mal gefragt ob denn was dran ist, und folgendes probiert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
start,i: integer;
begin
start := GetTickCount;
for i := 0 to 100000000 do
begin
begin
end;
end;
Caption := IntToStr(GetTickCount-start)
end;
procedure TForm1.Button2Click(Sender: TObject);
var
start,i: integer;
begin
start := GetTickCount;
for i := 0 to 100000000 do
begin
begin
end
end;
Caption := IntToStr(GetTickCount-start)
end;
Zwei bis auf ein Semikolon völlig gleiche (gleich sinnlose) procedures, doch das Ergebnis ist eindeutig: Die erste Procedure braucht 50% mehr Zeit als die zweite! Die erste: ca 300ms, die zweite: ca 200ms. Das Verhältnis bleibt beim Verändern der Zahl.
Zugegeben, sowas braucht einen nicht zu interessieren bei "normalen" Berechnungen, ist aber trotzdem interessant, dass sogar die Borland Demos keine Rücksicht drauf nehmen.
Gruß, Sebastian