![]() |
Hohe CPU Auslastung bei 64Bit Anwendungen
Ich versuche es noch einmal ohne über den Compiler zu schimpfen. :)
Die Ausgangssituation ist diese das die gleiche Anwendung gleicher Quelltext unter 32Bit 0% und mit 64Bit 25% Cpu Auslastung produziert. Bei 32Bit könnt ihr die Geschwindigkeit auf Maximum stellen und es bleibt bei fast 0% Auslastung wenn die Durchsichtigkeit ausgeschaltet ist. Was ich versucht habe. Zitat:
Die Anwendung zum testen das es so ist ![]() Es tritt nur dann auf wenn diese Funktion aufgerufen wird.
Delphi-Quellcode:
Das kann man leicht testen indem man einfach die "eigene Rotation und die 3D tiefe ausschaltet" beide Eigenschaften verwenden im etwas abgeänderte form die gleiche Funktion.
if (ObjItem.angle <> 0) then
begin GdipSetInterpolationMode(graphics, ObjItem.quality); GdipRotateWorldTransform(graphics, ObjItem.angle + 180, MatrixOrderAppend); //<<<< hier GdipTranslateWorldTransform(graphics, xD + (wD div 2), yD + (hD div 2), MatrixOrderAppend); //<<<<< und hier GdipDrawImageRectRectI(graphics, img, wD div 2, hD div 2, -wD, -hD, xS, yS, wS, hS, 2, imgAttr, ImgAbort, nil); end else begin GdipSetInterpolationMode(graphics, ObjItem.quality); GdipDrawImageRectRectI(graphics, img, PosX, PosY, wD, hD, xS, yS, wS, hS, 2, imgAttr, ImgAbort, nil); end; Meine Vermutung ist das dieses Problem von der GDIPlus 64Bit selbst verursacht wird oder aber wie zuvor schon öfters eine der Typen nicht korrekt für 64Bit definiert ist. Vielleicht hat ja doch noch jemand eine Idee falls es an der Anwendung selbst liegt. Bei der DLL werde ich es dann wohl selbst finden müssen obwohl ich nicht erkennen kann das es hier ein Type Problem geben könnte. (Etwas fehlt mir auch die Erfahrung ;) ) Hier noch dir Funktionen
Delphi-Quellcode:
Die übergebenen Typen sind alle identisch..
GdipTranslateWorldTransform: function(Graphics: LONG_PTR; dx: Single; dy: Single; order: GpMatrixOrder): GPSTATUS; stdcall;
GdipRotateWorldTransform: function(Graphics: LONG_PTR; angle: Single; order: GpMatrixOrder): GPSTATUS; stdcall; Habe es auch schon mit Pointer versucht bringt keine Verbesserung. gruss |
AW: Hohe CPU Auslastung bei 64Bit Anwendungen
Hat sich erledigt.
Jemand hat sich bereit erklärt das Problem zu analysieren. (Wenn es jemand kann dann er ;) ) Bei ihm ist die Auslastung 32Bit vs. 64Bit die gleiche so um 0 > 3 Prozent. (Win10) Es scheint so das es nicht an Delphi (Compiler) sondern an meiner älteren Hardware liegt. Das Problem ist bei mir unter 32Bit nie aufgetreten, warum es mit der 64Bit Version nicht geht, nun da bin ich nicht der Spezialist um das zu analysieren. Es scheint tiefer zu gehen als der Code selbst. Von daher denke ich das ich es so hinnehmen muss wie es ist. Programmtechnisch gesehen kann ich auf die angesprochenen Funktionen die in GDIPlus verwendet werden keinen Einfluss nehmen. GDIPlus64 <> GDIPlus32 PS: Zumindest kann ich davon ausgehen das es nicht an meiner Programmierung oder den 64Bit Compiler von Delphi liegt. ;) gruss |
AW: Hohe CPU Auslastung bei 64Bit Anwendungen
Schön das es geklärt ist,
hatte es gerade compilert und wollte da mal reinschauen. Kann ich es mir sparen... ;-) |
AW: Hohe CPU Auslastung bei 64Bit Anwendungen
Zitat:
Trotzdem Danke. gruss |
AW: Hohe CPU Auslastung bei 64Bit Anwendungen
Jetzt ist es wohl klar........
Aber nur zur Info: Auf meinem Rechner pendeln beide Versionen zwischen 0 und 1 % |
AW: Hohe CPU Auslastung bei 64Bit Anwendungen
Zitat:
Denke Win10 oder? Bei mir auf dem Rechner Win7 wie schon gesagt 64Bit 25% andere 0. Meine CPU Core2 Quad Q9650 3GHZ. gruss |
AW: Hohe CPU Auslastung bei 64Bit Anwendungen
Grafikkarte:
NVidia QUADRO P600 Intel Core i7-8700K 3.7 Ghz 64 GB Ram Windows 10 ja |
AW: Hohe CPU Auslastung bei 64Bit Anwendungen
Zitat:
Meine Graka NVidia GTX 780 TI Danke nochmals. gruss |
AW: Hohe CPU Auslastung bei 64Bit Anwendungen
Sorry eins wollte ich noch nachfragen.
Wenn du das teil mit voller Leistung laufen lässt wie ist die CPU Auslastung dann? Also alles an inklusive Speed auf Maximum. Nebenbei bei mir auf Win10 externe Festplatte über USB 2 85% CPU Auslastung. :) Bis mein System vollständig gestartet ist benötige ich etwa 10 Min. gruss |
AW: Hohe CPU Auslastung bei 64Bit Anwendungen
Tja, pendelt bei beiden Version zwischen 3 und 4%
Das hast Du echt gut gemacht. Wobei mein Rechner ja eher am oberen Rand anzusiedeln ist. Arbeite halt im CAD Bereich und da ist Speed alles..... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz