Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

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

AW: Hohe CPU Auslastung bei 64Bit Anwendungen

  Alt 28. Aug 2018, 22:08
Ein Profiler kann dir zeigen wo im Programm die meiste Zeit für alle Berechnungen anfallen, also wer an den 100% CPU-Last die meiste Schuld hat.

Das geht bei AQTime auf ganze Prozeduren, bis hin zu einzelnen Delphi-Befehlen und vielleicht sogar auf Assembler-Ebene. (je tiefer die Ebene, um so größer die Beeinflussung der Messung > kannst selber ausprobieren, wenn du manuell eine Zeitmessung einbaust und z.B. in einem for i := 0 to 10000000 do Inc(x); die Dauer der einzelnen INC misst und zusammenrechnest und das dann mit "nur" einer einzelnen Messung um die ganze Schleife vergleichst)


Natürlich erzeugen Compiler für verschiedene Systeme unterschiedlichen Code. (egal ob Win32, Win64, iOS, MacOX, Linux usw.)
Da gibt es sogar nochmal einen Unterschied, ob du ein 32 Bit-Programm in einer 32-Bit-CPU laufen lässt oder in einer 64-Bit-CPU/64-Bit-Windows,
bzw. 32-Bit-Anwendung in einem 32-Bit-Windows auf einer 64-Bit-CPU
und das dann noch gegen den 64-Bit-Code in der 64-Bit-CPU/Windows.

Es gibt auch im Pascal/RTL/VCL/... nochmal unterschiedliche Versionen je Plattform vom mehreren Funktionen, vor allem bei Codes wo direkt mit Assembler gearbeitet wird.


Daran kannst du nichts ändern (unabhängig davon, dass andere/neuere Win32-Compiler anderen Code und bessere Optimierungen bieten und dass man für einzelne Delphi-Funktionen eigene/fremde Versionen nutzen kann)
aber du kannst schauen wo die Zeit/CPULast anfällt und da dann eventuell deinen Quellcode anpassen.


Bedenke dass Win64 so ähnlich wie iOS, Linux und Co. angesehen werden muß
und nicht jeder Code einfach so überall gleich verwendet werden kann.

Bei einfachen Funktionen geht das schon,
sobald System-APIs ins Spiel kommen, kann es die düben nicht/anders geben,
und insgesamt muß man eben für unterschiedliche Systeme auch eigenen/angepassten Code erstellen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (28. Aug 2018 um 22:25 Uhr)
  Mit Zitat antworten Zitat