![]() |
Hohe CPU auslastung bei 64Bit Anwendung
Ich habe mein Programm kompiliert einmal in 32Bit und in 64. (CE)
Im vergleich D2010 (32Bit) 0% bei voller Auslastung. CE 32Bit 3 > 5% und bei 64Bit 25% jetzt brat mir einer nen Storch woran liegt das . Es ist der gleiche Quellcode nur eine andere Plattform. Ist mir unbegreiflich. Muss ich da beim Timer was berücksichtigen ? Oder, oder, oder.. Hmmmm. gruss |
AW: Hohe CPU auslastung bei 64Bit Anwendnung
Keine Ahnung, da niemand auch nur Ansatzweise etwas dazu sagt was überhaupt gemacht wird. :glaskugel:
|
AW: Hohe CPU auslastung bei 64Bit Anwendnung
Zitat:
Die 64Bit Anwendung verwendet 25% CPU beim gleichen Quelltext mehr gibt es da nicht zu sagen. Außer das die 32Bit 0% verwendet.. aber sagte ich schon. Bin leider nicht der 64Bit Spezialist sonst könnte ich dir mehr Auskunft geben. Sorry.. ihr müsst nicht mehr Antworten das ist nicht das wahre mit 64Bit. Wenn ein Hobby zur Arbeit ausartet ohne sichtbaren Erfolg dann muss man es lassen. Die 32Bit ist 394KB groß, sie hat bei den meisten Anwendungen von mir 0% CPU Auslastung. Die CE 64Bit Version ist 10X so groß nämlich 3.654KB und die CPU wird zu 25% Ausgelastet. Das macht keinen sinn. Mit der Größe könnte ich noch leben aber nicht mit der CPU Auslastung. gruss |
AW: Hohe CPU auslastung bei 64Bit Anwendnung
Zitat:
Grüße Dalai |
AW: Hohe CPU auslastung bei 64Bit Anwendnung
Zitat:
Und das ist was mich stört ich kann es nicht beheben. Hier ist der Code!
Delphi-Quellcode:
Aber was nutzt es denn der gleiche code unter 32BIT verursacht 0% Auslastung (also insgesamt vom kompletten Programm) und 64Bit 25%
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; Die Funktionen dazu
Delphi-Quellcode:
gruss
GdipTranslateWorldTransform: function(Graphics: LONG_PTR; dx: Single; dy: Single; order: GpMatrixOrder): GPSTATUS; stdcall;
GdipRotateWorldTransform: function(Graphics: LONG_PTR; angle: Single; order: GpMatrixOrder): GPSTATUS; stdcall; |
AW: Hohe CPU auslastung bei 64Bit Anwendung
OverTheTaskBar 32bit 0% CPU und 6,1 MB RAM (OTTB.exe)
OverTheTaskBar 64bit 0% CPU und 6,5 MB RAM (OTTB64.exe) Jeweils mit DelphiCE kompiliert: OTTB.exe 2.257 KB OTTB64.exe 3.607 KB Ich bevorzuge 32bit, auch wenn das "Oracle VM VirtualBox"-Icon dort nicht stimmt :wink: |
AW: Hohe CPU auslastung bei 64Bit Anwendung
Zitat:
Anbei ein PIC.. da sieht man was ich meine. Beide sind von der selben Quelle. gruss |
AW: Hohe CPU auslastung bei 64Bit Anwendung
Zitat:
|
AW: Hohe CPU auslastung bei 64Bit Anwendung
Zitat:
Mit OTTB64 habe ich jetzt alles gefixt denke ich mal was den OpenDialog angeht aber das ist ein anderes Thema. ;) gruss |
AW: Hohe CPU auslastung bei 64Bit Anwendung
OK, ich dachte, du beziehst dich auf OTTB. Mehr Infos zu deinem Problem würden daher nicht schaden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:43 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-2025 by Thomas Breitkreuz