Thema: Delphi Delphi langsam

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi langsam

  Alt 20. Nov 2012, 22:06
Ersteinmal darfst du keine Äpfel mit Birnen vergleichen

itoa entspricht ja eher den Prozeduren Delphi-Referenz durchsuchenStr und Delphi-Referenz durchsuchenVal,
aber nicht den Funktionen IntToStr und StrToInt.

Eine Variable als VAR-Parameter zuübergeben und "nur" zu verändern ist was total Anderes, als eine zweite Variable komplett neu zu erzeugen und die Andere zu löschen/überschreiben.

Und ich empfehle dir dringend mal FastMM zu besorgen. (in "aktuellen" Delphis ist absichtlich, seit bestimmt schon über 8 Jahren, der alte DelphiMM dadurch ersetzt wurden)

Und Deine Aussage war so auch nicht aussagefähig, denn wenn das Ganze 2 Tage gebraucht hätte, dann wären 5 Seknden garnichts.
PS: Du weißt daß man die Zahlen abschreiben oder gar kopieren und sie "direkt" neben de 5 Sekunde-Bemerkung hätte schreiben können?
(Das Bild war eh nicht nötig, bei den wenigen Informationen)

Delphi-Quellcode:
program Project2;

{$APPTYPE CONSOLE}

uses
  Windows,
  SysUtils;

var
  i, j : Integer;
  c, cbuf : DWORD;
  s : AnsiString;
  s2 : ShortString;
begin
  c := GetTickCount;
  for i := 0 to 5650 do
    for j := 0 to 9930 do begin
      s := IntToStr(j);
      s := IntToStr(j-i);
    end;
  cbuf := GetTickCount;
  WriteLn(cbuf-c);

  c := GetTickCount;
  for i := 0 to 5650 do
    for j := 0 to 9930 do begin
      Str(j, s);
      Str(j-i, s);
    end;
  cbuf := GetTickCount;
  WriteLn(cbuf-c);

  c := GetTickCount;
  for i := 0 to 5650 do
    for j := 0 to 9930 do begin
      Str(j, s2);
      Str(j-i, s2);
    end;
  cbuf := GetTickCount;
  WriteLn(cbuf-c);

  ReadLn;
end.
$2B or not $2B

Geändert von himitsu (20. Nov 2012 um 22:13 Uhr)
  Mit Zitat antworten Zitat