Einzelnen Beitrag anzeigen

Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.468 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: DLL Performance allgemein

  Alt 23. Dez 2018, 18:49
Irgendwie scheinen mir alle bisherigen Antworten an der Frage vorbei zu gehen:

Kann man von Delphi-DLLs die gleiche Performance erwarten wie von WinAPI-Funktionen?

Meiner Ansicht nach ist die Antwort: Meistens Ja, im Rahmen der Messgenauigkeit.

Es hängt natürlich stark davon ab, was genau man macht. Ich muss zugeben, dass ich den Sourcecode auf Anhieb nicht verstanden habe (aber ich habe auch nur grob drüber geschaut). Wenn es wesentlich langsamer ist als die entsprechende WinAPI-Funktion, würde ich eher auf eine ineffiziente Implementierung tippen als auf ein generelles Problem mit Delphi-DLLs.

Typische Fehler wären beispielsweise Funktionen, die einen String immer wieder von vorne lesen, z.B. Pos('a', s), also etwa dieser Code, um alle Vorkommen von 'a' durch 'x' zu ersetzen:

Delphi-Quellcode:
p := Pos('a', s);
while p > 0 do begin
  s[p] := 'x';
  p := Pos('a', s);
end;
Leider muss man im Zweifelsfall davon ausgehen, dass der Delphi-Compiler nicht immer den effizientesten Code erzeugt und dass auch die RTL nicht immer die effizienteste Implementation einer Funktion enthält. Aber wie oben geschrieben: Das ist relativ selten der Grund für ein Performance-Problem, der eigene Code ist viel häufiger der Grund.
Thomas Mueller
  Mit Zitat antworten Zitat