AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Hohe CPU auslastung bei 64Bit Anwendung
Thema durchsuchen
Ansicht
Themen-Optionen

Hohe CPU auslastung bei 64Bit Anwendung

Ein Thema von EWeiss · begonnen am 24. Aug 2018 · letzter Beitrag vom 24. Aug 2018
Thema geschlossen
Seite 1 von 3  1 23      
EWeiss
(Gast)

n/a Beiträge
 
#1

Hohe CPU auslastung bei 64Bit Anwendung

  Alt 24. Aug 2018, 00:40
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

Geändert von EWeiss (24. Aug 2018 um 01:54 Uhr)
 
Benutzerbild von himitsu
himitsu
Online

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

AW: Hohe CPU auslastung bei 64Bit Anwendnung

  Alt 24. Aug 2018, 01:49
Keine Ahnung, da niemand auch nur Ansatzweise etwas dazu sagt was überhaupt gemacht wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
 
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Hohe CPU auslastung bei 64Bit Anwendnung

  Alt 24. Aug 2018, 01:53
Keine Ahnung, da niemand auch nur Ansatzweise etwas dazu sagt was überhaupt gemacht wird.
Was soll ich da noch zu sagen..
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

Geändert von EWeiss (24. Aug 2018 um 03:40 Uhr)
 
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.680 Beiträge
 
Delphi 5 Professional
 
#4

AW: Hohe CPU auslastung bei 64Bit Anwendnung

  Alt 24. Aug 2018, 03:45
[...] mehr gibt es da nicht zu sagen.
Doch, z.B. was das Programm tut. Und welche Versuche du bereits unternommen hast, dem auf die Spur zu kommen, z.B. Teile des Programms deaktivieren, Code auskommentieren usw. Oder im Process Explorer oder Process Hacker nachschauen, welche Funktion in welcher DLL genau die Last verursacht. Oder den Process Monitor mitschreiben lassen, welche Aktionen dein Programm macht. All das gibt Hinweise auf die Ursache.

Grüße
Dalai
 
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Hohe CPU auslastung bei 64Bit Anwendnung

  Alt 24. Aug 2018, 03:51
[...] mehr gibt es da nicht zu sagen.
Doch, z.B. was das Programm tut. Und welche Versuche du bereits unternommen hast, dem auf die Spur zu kommen, z.B. Teile des Programms deaktivieren, Code auskommentieren usw. Oder im Process Explorer oder Process Hacker nachschauen, welche Funktion in welcher DLL genau die Last verursacht. Oder den Process Monitor mitschreiben lassen, welche Aktionen dein Programm macht. All das gibt Hinweise auf die Ursache.

Grüße
Dalai
Ich weis wo die Position ist an der die Auslastung auftritt.. ABER nicht mit der 32BIT.
Und das ist was mich stört ich kann es nicht beheben.

Hier ist der Code!
Delphi-Quellcode:
      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;
Aber was nutzt es denn der gleiche code unter 32BIT verursacht 0% Auslastung (also insgesamt vom kompletten Programm) und 64Bit 25%

Die Funktionen dazu
Delphi-Quellcode:
  GdipTranslateWorldTransform: function(Graphics: LONG_PTR; dx: Single; dy: Single; order: GpMatrixOrder): GPSTATUS; stdcall;
  GdipRotateWorldTransform: function(Graphics: LONG_PTR; angle: Single; order: GpMatrixOrder): GPSTATUS; stdcall;
gruss

Geändert von EWeiss (24. Aug 2018 um 03:54 Uhr)
 
old7
(Gast)

n/a Beiträge
 
#6

AW: Hohe CPU auslastung bei 64Bit Anwendung

  Alt 24. Aug 2018, 03:52
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
 
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Hohe CPU auslastung bei 64Bit Anwendung

  Alt 24. Aug 2018, 03:55
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
Kann man damit nicht vergleichen.. Sorry!
Anbei ein PIC.. da sieht man was ich meine. Beide sind von der selben Quelle.

gruss

Geändert von Daniel (24. Jul 2019 um 06:29 Uhr) Grund: //Anhang auf Wunsch des Autors gelöscht.
 
old7
(Gast)

n/a Beiträge
 
#8

AW: Hohe CPU auslastung bei 64Bit Anwendung

  Alt 24. Aug 2018, 03:59
Zitat:
Kann man damit nicht vergleichen.. Sorry!
Womit nicht vergleichber und wieso denn
 
EWeiss
(Gast)

n/a Beiträge
 
#9

AW: Hohe CPU auslastung bei 64Bit Anwendung

  Alt 24. Aug 2018, 04:01
Zitat:
Kann man damit nicht vergleichen.. Sorry!
Womit nicht vergleichber und wieso denn
Siehe shot!
Mit OTTB64 habe ich jetzt alles gefixt denke ich mal was den OpenDialog angeht aber das ist ein anderes Thema.

gruss

Geändert von EWeiss (24. Aug 2018 um 04:04 Uhr)
 
old7
(Gast)

n/a Beiträge
 
#10

AW: Hohe CPU auslastung bei 64Bit Anwendung

  Alt 24. Aug 2018, 04:08
OK, ich dachte, du beziehst dich auf OTTB. Mehr Infos zu deinem Problem würden daher nicht schaden.
 
Thema geschlossen
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz