Einzelnen Beitrag anzeigen

lxo

Registriert seit: 30. Nov 2017
260 Beiträge
 
Delphi 12 Athens
 
#2

AW: Code Optimierung zu ".. is <type>"

  Alt 11. Mär 2022, 11:23
Auf jeden Fall ist (lComponent as TLabel) langsamer als TLabel(lComponent).
TLabel(lComponent) aber vorher in eine Variable vom Typen TLabel zu schreiben scheint keinen Unterschied zu geben.

Hier einmal ein Beispiel.

Wieso das so ist kann ich aber auch nicht genau sagen, würde mich aber auch interessieren.

Delphi-Quellcode:
type
  TTest = class
    Int: Integer;
  end;
procedure TForm105.Button1Click(Sender: TObject);
var
  lObject: TObject;
  i : Integer;
  lStopwatch: TStopwatch;
  lTest: TTest;
begin
  lObject := TTest.Create;
  try
    lTest := TTest( lObject);
    lStopwatch := TStopwatch.StartNew;
    for I := 0 to MaxInt do
    begin
// (lObject as TTest).Int := i; // 8,7 Sekunden
// TTest( lObject).Int := i; // 2,5 Sekunden
// lTest.Int := i; // 2,5 Sekunden
    end;
    lStopwatch.Stop;
    ShowMessage( lStopwatch.Elapsed.Duration.ToString);
  finally
    lObject.Free;
  end;
end;
  Mit Zitat antworten Zitat