Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi CPU Auslastung 64 via 32Bit (https://www.delphipraxis.net/199733-cpu-auslastung-64-via-32bit.html)

EWeiss 15. Feb 2019 15:44

CPU Auslastung 64 via 32Bit
 
Mal ne dumme frage.. warum ist die CPU Auslastung bei gleichen Quelltext mit 64Bit um einem Faktor von 7 höher wie bei 32Bit?
bsp. 32Bit 0% und in 64Bit 7%

gruss

Daniel 15. Feb 2019 15:49

AW: CPU Auslastung 64 via 32Bit
 
Bei welchen Operationen denn?
Ein 64bit-Prozess lastet die CPU per se erstmal nicht mehr aus als ein 32bit-Prozess. Die Frage wird sich nicht pauschal beantworten lassen.

EWeiss 15. Feb 2019 15:52

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Bei welchen Operationen denn?
Danke für die Antwort..

Leider kann ich die frage nicht beantworten denn dann hätte ich das Problem schon gelöst. ;)
Ich verwende in 32Bit und 64Bit LONG_PTR während in 32Bit LONG_PTR = Integer 4 Byte sind, sind es unter 64Bit 8 vielleicht liegt es daran.
Das Problem tritt nicht nur bei einer Anwendung auf sondern bei allen.

PS:
Vielleicht liegt es auch an GDI+ das dieses unter 64Bit schlechter seine Arbeit verrichtet.
Kann leider nur raten.

gruss

Neutral General 15. Feb 2019 15:59

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von EWeiss (Beitrag 1425666)
Ich verwende in 32Bit und 64Bit LONG_PTR während in 32Bit LONG_PTR = Integer 4 Byte sind, sind es unter 64Bit 8 vielleicht liegt es daran.

Das ist ganz einfach der Grund warum 32-Bit 32-Bit ist und 64-Bit 64-Bit. Statt 32-Bit Adressen sind es 64-Bit Adressen.
Und das allein hat keinerlei auswirkungen auf Geschwindigkeit.

Ich weiß aber auch nicht warum du dich dauernd noch mit 64-Bit abgibst.
Du hasst 64-Bit und Windows 10. Also bleib halt bei Windows 7 und 32-Bit und dein Problem ist gelöst.

EWeiss 15. Feb 2019 16:02

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Und das allein hat keinerlei auswirkungen auf Geschwindigkeit.
Wie ich schon sagte kann nur raten.. deshalb ja meine frage an die Profis die sich etwas besser mit Compilern oder tieferliegenden Dingen auskennen.

Ich kann mir auch nicht erklären warum das so ist hätte eigentlich das Gegenteil erwartet.

Zitat:

Du hasst 64-Bit und Windows 10. Also bleib halt bei Windows 7 und 32-Bit und dein Problem ist gelöst.
Musste das jetzt wieder sein was soll der scheiß? Und die Angriffe fortwährend auf meine Person.
Bleibt doch mal beim Thema und kommt nicht immer mit Dingen die total irrelevant sind und nichts zum eigentlichen Thema beitragen.
Solche Kommentare kann man sich schenken.

1. Ich kann auf meine Hardware kein Win7 mehr installieren.
2. Auch mein Win7 war 64Bit oder glaubst du das gab es nur für 32Bit?

gruss

Neutral General 15. Feb 2019 16:11

AW: CPU Auslastung 64 via 32Bit
 
64-Bit sollte grundlegend ähnlich schnell sein wie 32-Bit.
Je nachdem was man macht wird das eine wahrscheinlich etwas schneller gehen, das andere etwas langsamer.

Und um 7% CPU Auslastung würde ich mir jetzt keine großen Gedanken machen.
Hast du denn Messungen die zeigen, dass gewisse Codeteile (deutlich) langsamer ausgeführt werden?
Falls der Code selbst trotzdem genauso schnell oder sogar schneller läuft würde ich mir keine Gedanken um 7% CPU Auslastung machen.

So oder so kann man pauschal nichts sagen, solange du uns nicht Code zeigen kannst.
Am besten Code mit dem das jeder bei sich nachvollziehen kann (wobei das wahrscheinlich schwer sein dürfte).

EWeiss 15. Feb 2019 16:15

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Am besten Code mit dem das jeder bei sich nachvollziehen kann (wobei das wahrscheinlich schwer sein dürfte).
Warum sollte das schwer sein. (vielleicht weil NonVcl)

Hier die Anwendung.
Kompilieren in 32 Bit und 64Bit anschließend testen 64Bit lastet die Anwendung um 7% aus bei meinem i5 9600K 3.7 GHz


gruss

Bernhard Geyer 15. Feb 2019 16:15

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von Neutral General (Beitrag 1425670)
... würde ich mir keine Gedanken um 7% CPU Auslastung machen.

7% ist bei einem i7 mit 16 Cores schon ein Core der Dauerbelegt ist.
Da würde ich schon schauen was da nicht passt.
Ich Tippe hier auf einen Portierungsfehler 32->64 Bit

EWeiss 15. Feb 2019 16:17

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1425672)
Zitat:

Zitat von Neutral General (Beitrag 1425670)
... würde ich mir keine Gedanken um 7% CPU Auslastung machen.

7% ist bei einem i7 mit 16 Cores schon ein Core der Dauerbelegt ist.
Da würde ich schon schauen was da nicht passt.

Ich habe nur 6 und einer davon ist mit 7% belegt.

Zitat:

Ich Tippe hier auf einen Portierungsfehler 32->64 Bit
Das ist schwer nachzuverfolgen weil die Anwendung ja grundsätzlich läuft. (Aber ist schon richtig muss nichts bedeuten)

gruss

Bernhard Geyer 15. Feb 2019 16:21

AW: CPU Auslastung 64 via 32Bit
 
Ein Core 7% ist nicht so tragisch.
Ist es ein Delphi oder eine VB-Anwendung?

EWeiss 15. Feb 2019 16:22

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1425674)
Ist es ein Delphi oder eine VB-Anwendung?

Delphi.
Zitat:

Ein Core 7% ist nicht so tragisch.
Richtig aber ich möchte ergründen warum es so ist. ;) Irgendwas muss da im argen sein.

gruss

Neutral General 15. Feb 2019 16:36

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von EWeiss (Beitrag 1425671)
Zitat:

Am besten Code mit dem das jeder bei sich nachvollziehen kann (wobei das wahrscheinlich schwer sein dürfte).
Warum sollte das schwer sein. (vielleicht weil NonVcl)

Hier die Anwendung.
Kompilieren in 32 Bit und 64Bit anschließend testen 64Bit lastet die Anwendung um 7% aus bei meinem i5 9600K 3.7 GHz

Naja das geht natürlich schon. Aber was ich meinte war eher ein Minimalbeispiel mit ein paar Zeilen Code die reproduzierbar auf 64-Bit mehr Auslastung erzeugen als auf 32-Bit.
In einem gesamten Projekt ist es dann für uns schwer rauszufinden woran es hängt - du kennst dich im Code immerhin aus, wir nicht.

EWeiss 15. Feb 2019 16:48

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von Neutral General (Beitrag 1425677)
Zitat:

Zitat von EWeiss (Beitrag 1425671)
Zitat:

Am besten Code mit dem das jeder bei sich nachvollziehen kann (wobei das wahrscheinlich schwer sein dürfte).
Warum sollte das schwer sein. (vielleicht weil NonVcl)

Hier die Anwendung.
Kompilieren in 32 Bit und 64Bit anschließend testen 64Bit lastet die Anwendung um 7% aus bei meinem i5 9600K 3.7 GHz

Naja das geht natürlich schon. Aber was ich meinte war eher ein Minimalbeispiel mit ein paar Zeilen Code die reproduzierbar auf 64-Bit mehr Auslastung erzeugen als auf 32-Bit.
In einem gesamten Projekt ist es dann für uns schwer rauszufinden woran es hängt - du kennst dich im Code immerhin aus, wir nicht.

Minimal Beispiel ist schwierig..
da dann nicht mehr die Gegebenheiten vorhanden sind wie im realen zustand.
Die Auslastung muss ja irgendwo auch so erzeugt werden.

Ich muss alle Bibliotheken verwenden die ich auch in meinem Hochgeladenen Test Beispiel verwende. Bei einem Minimal Beispiel ist das schwer zu verwirklichen.
Die Realen Bedingungen müssen schon vorhanden sein. Hmm.. ;)

PS:
Es gibt ja nur 2 Möglichkeiten.
1. Es läuft bei euch gut (vorausgesetzt ihr habe nichts geändert) also beides 0% CPU Auslastung.
2. Oder nicht das es so ist wie bei mir. 64Bit ca. 7%

Dann kann ich zumindest ausschließen das es an meinem System selbst liegt.

gruss

Aviator 15. Feb 2019 18:45

AW: CPU Auslastung 64 via 32Bit
 
Also bei mir läuft die Testanwendung egal mit welchen Einstellungen immer mit 0% CPU Auslastung. Ich nutze die bereits vorhandene Exe. Kompiliert habe ich nichts, gerade kein Delphi zur Hand. 32-bit konnte ich also nicht testen.

EWeiss 15. Feb 2019 18:57

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von Aviator (Beitrag 1425689)
Also bei mir läuft die Testanwendung egal mit welchen Einstellungen immer mit 0% CPU Auslastung. Ich nutze die bereits vorhandene Exe. Kompiliert habe ich nichts, gerade kein Delphi zur Hand. 32-bit konnte ich also nicht testen.

Danke für die Info.
Schon wieder ein seltsames Problem in Verbindung mit Win10 64Bit Prof (1806 habe ich)
Und ja ich hasse es kann aber leider mit nichts anderes mehr Arbeiten. :twisted: weil meine Hardware das nicht erlaubt.

Nebenbei!
Schalte mal auf pause danach kannst du jedes Objekt einzeln verschieben. Hat jetzt aber nichts mit der CPU Auslastung zu tun.

gruss

Der schöne Günther 15. Feb 2019 19:05

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von EWeiss (Beitrag 1425690)
Win10 64Bit Prof (1806 habe ich)

Faszinierend 🤔


Du meinst sicher 1803 oder 1809. Beides gleich wahrscheinlich, 1806 liegt rechnerisch genau dazwischen ;-)

EWeiss 15. Feb 2019 19:09

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1425692)
Zitat:

Zitat von EWeiss (Beitrag 1425690)
Win10 64Bit Prof (1806 habe ich)

Faszinierend ��


Du meinst sicher 1803 oder 1809. Beides gleich wahrscheinlich, 1806 liegt rechnerisch genau dazwischen ;-)

oops.. sorry ja 1803 Entschuldige ;)
Bei den ganzen Versionen blickt keiner mehr durch. :)


gruss

old7 15. Feb 2019 20:24

AW: CPU Auslastung 64 via 32Bit
 
Nicht kompiliert, 0% CPU-Auslastung. Wenn ich eine Kugeln durch die Gegend ziehe bis 23%, lasse ich die Kugel wieder los: 0%

Win10 64bit, 1809 Build 17763.316

Einfach im Editor/Notepad auf Hilfe klicken, dann siehste deine genaue Windows-Version. Oder "winver".

EWeiss 15. Feb 2019 20:38

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Einfach im Editor/Notepad auf Hilfe klicken, dann siehste deine genaue Windows-Version. Oder "winver".
Danke.
Version 1803 (Build 17134.590)
Vielleicht liegt es da dran. :evil:

Mein System:
NVIDIA GeForce GTX 1080 Ti 11GB Speicher
Prozessor Intel(R) Core(TM) i5-9600K CPU @ 3.70GHz, 3696 MHz, 6 Kern(e), 6 logische(r) Prozessor(en)
Installierter physischer Speicher (RAM) 32,0 GB
Modell Samsung SSD 860 EVO 500GB
Modell Samsung SSD 850 EVO 500GB
Modell HGST HDS724040ALE640 3,64 TB (4.000.784.417.280 Bytes)


Versteh es einfach nicht.
Nochmals Danke für die Infos.

gruss

Delphi-Laie 15. Feb 2019 23:50

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von EWeiss (Beitrag 1425663)
Mal ne dumme frage.. warum ist die CPU Auslastung bei gleichen Quelltext mit 64Bit um einem Faktor von 7 höher wie bei 32Bit?
bsp. 32Bit 0% und in 64Bit 7%

7(%) ist nicht das Siebenfache von 0(%). Insofern stimme ich der (Eigen-)Attributierung der Frage zu.

EWeiss 15. Feb 2019 23:54

AW: CPU Auslastung 64 via 32Bit
 
Zitat:

Zitat von Delphi-Laie (Beitrag 1425708)
Zitat:

Zitat von EWeiss (Beitrag 1425663)
Mal ne dumme frage.. warum ist die CPU Auslastung bei gleichen Quelltext mit 64Bit um einem Faktor von 7 höher wie bei 32Bit?
bsp. 32Bit 0% und in 64Bit 7%

7(%) ist nicht das Siebenfache von 0(%). Insofern stimme ich der (Eigen-)Attributierung der Frage zu.

Du hast ja recht.. :lol: von daher schon dumm, was soll's kann ich mit leben.
Solange sich so etwas nicht auf meine Programme auswirkt geht es ja noch.

Es addiert sich immer um das 7 Fache.. vielleicht kommst du damit besser klar.

gruss

old7 16. Feb 2019 04:35

AW: CPU Auslastung 64 via 32Bit
 
Habe es vorhin unter Win 8.1 (64bit) getestet, CPU-Auslastung wie in #18.

Liegt wohl eher nicht an der Windows-Version bei mir. Vielleicht am Prozessor-Hersteller (hier: AMD) wg. Spectre+Meltdown? Vielleicht müssen die Intels mehr rechnen? K.A., reine Spekulation von mir.

https://www.heise.de/thema/Meltdown-und-Spectre

https://www.bsi-fuer-buerger.de/BSIF..._10012018.html

jfheins 16. Feb 2019 11:30

AW: CPU Auslastung 64 via 32Bit
 
Bei derartigen Performanceproblemen würde ich immer einen Profiler empfehlen.

Damit kannst du dein Programm laufen lassen und genau herausfinden, in welcher Methode die ganze Rechenzeit drauf geht. Ein ganzes Programm ist dann doch oft zu groß, als dass man noch ganz genau weiß, wo die Zeit verbraten wird.
Es gibt auch immer irgendwelche Genzfälle, die man nicht genau unter Kontrolle hat. Zum Beispiel der hier: https://stackoverflow.com/a/17331230/1974021 wobei da 32 bit langsamer war.

Aber ohne die Methode zu kennen, wo die Rechenlast erzeugt wird, ist das ein wenig wie stochern im Nebel ;-)

Bernhard Geyer 16. Feb 2019 11:39

AW: CPU Auslastung 64 via 32Bit
 
Profiler wie AQ-Time sind hier sehr gut.
Hatten bei uns schon öfter eklatante Performance-Steigerungen geschafft.
Im obigen Fall dann einfach ein vergleich 32-Bit zu 64-Bit Exe.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 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