Das hängt aber auch sehr vom konkreten System ab. Bei mir (i5-8600k) braucht
Win32 ca. 1400 Millisekunden und Win64 ca. 1600 bzw. im Release 1300 vs. 400. Da ist der Unterschied geringer. Generell ist die Optimierung beim 64-Bit Compiler oft besser.
Verstehe
Code:
var
counter: integer;
startTime, endTime: TDateTime;
timeTaken: Double;
begin
counter := 1;
startTime := Now; // Startzeit aufzeichnen
asm
mov ecx, counter
@loop_start:
inc ecx
cmp ecx, 100000000
jle @loop_start
mov counter, ecx
end;
endTime := Now;
timeTaken := MilliSecondSpan(startTime, endTime);
ShowMessage(FloatToStr(timeTaken) + ' ms');
end;
jetzt nur noch ca. 50 ms für
win32
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
counter:integer;
startTime, endTime: TDateTime;
timeTaken: Double;
begin
counter := 0;
startTime := Now; // Startzeit aufzeichnen
while counter <= 100000000 do
inc(counter);
endTime := Now; // Endzeit aufzeichnen
timeTaken := MilliSecondSpan(startTime, endTime); // Berechnung der benötigten Zeit in Millisekunden
ShowMessage(FloatToStr(timeTaken) + ' ms'); // Zeigt die benötigte Zeit in Millisekunden an
end;
Ich habe jetzt mal den inc versucht. ist egal ob auf mac oder win immer bei ca. 30-60 ms.
d.h. für mich falls ich etwas Inkrementieren muss sollte ich "inc" verwenden anstelle "x := x+1;"
ich find das echt Interresant
Dachte für mich immer... das ist doch das gleiche...