AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein C++ Enormer Performanceunterschied zwischen 32 und 64 Bit?
Thema durchsuchen
Ansicht
Themen-Optionen

Enormer Performanceunterschied zwischen 32 und 64 Bit?

Ein Thema von Zacherl · begonnen am 31. Okt 2014 · letzter Beitrag vom 4. Nov 2014
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Desmulator
Desmulator

Registriert seit: 3. Mai 2007
Ort: Bonn
169 Beiträge
 
#11

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 1. Nov 2014, 10:34
Das gilt für IA64 und nicht für X32_64. Dort läuft auch alles nativ auf dem Prozessor
Hat sich der Fragesteller denn schon zu seiner Prozessorarchitektur geäußert? Habe ich dann wohl überlesen ~ ...
Lars
There are 10 kinds of people in the world:
those who get binary, and those who don’t.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 1. Nov 2014, 10:43
Das gilt für IA64 und nicht für X32_64. Dort läuft auch alles nativ auf dem Prozessor
Hat sich der Fragesteller denn schon zu seiner Prozessorarchitektur geäußert? Habe ich dann wohl überlesen ~ ...
Im Privatbereich wird man praktisch keine IA64-Rechern antreffen. Und auch bei den Servern dürfte IA64 eher ein Exote sein. Werden die Prozessoren überhaupt noch verkauft?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 1. Nov 2014, 11:00
[DerBlindeÜberFarben-Modus]
Hieß es nicht mal, dass C++ für 64bit einen völlig neuen Compiler bekommen sollte (LLVM)?
Ich hätte zwar gedacht, das würde (weil es eine Zwischenschicht ähnlich .net wäre langsamer...
Hat es vielleicht damit was zu tun?
Ansonsten vielleicht einfach mal MEissing anfragen. Sowas beantwortet er ja i.d.R. schon.
[/DerBlindeÜberFarben-Modus]
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 1. Nov 2014, 11:04
Visual C++ wird wohl eher kein LLVM verwenden, C++-Builder schon.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 1. Nov 2014, 11:10
Stimmt. Brille ist geputzt.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 1. Nov 2014, 11:27
[DerBlindeÜberFarben-Modus]
Hieß es nicht mal, dass C++ für 64bit einen völlig neuen Compiler bekommen sollte (LLVM)?
Ich hätte zwar gedacht, das würde (weil es eine Zwischenschicht ähnlich .net wäre langsamer... Hat es vielleicht damit was zu tun?
[/DerBlindeÜberFarben-Modus]
Wie ein Compiler aufgebaut ist hat nix mit der Ausführungsgeschwindigkeit des Compilats zu tun.
Diese "Zwischenschicht" ist eher eine Architektur mit der der Compiler einfacher, modularer und einfacher Optimierbarer entwickelt werden kann.
Der (vermutlich fast nahezu nicht mehr erweiterbare) 32-Bit Compiler von Delphi wäre das gegenstück zu einem auf LLVM aufsetzenden Compiler.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#17

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 1. Nov 2014, 16:08
Hast das mal eingegrenzt?
Sind es die Switches? Die Lookups? Die Unterfunktionen?
Wäre doch ein Leichtes, ein paar Tests zu machen.
Habe wie gesagt den VS2013 internen Profiler mehrmals drüberlaufen lassen. Dort sehe ich zwar, welche Funktion wie viel Prozent der Gesamtlaufzeit für sich beansprucht, aber die prozentualen Werte unterscheiden sich bei den 2 Versionen nicht wirklich.
Der einzige Unterschied ist, dass das 32 Bit Kompilat eine durchweg deutlich langsamere absolute Laufzeit hat (das gillt auch für externe Runtime Funktionen wie z.b. "sprintf").

Es gibt auch keine Funktion, welche allein betrachtet herraussticht (alle lowest-level Methoden beanspruchen höchstens mal 4% der Gesamtlaufzeit).

Diese Erklärung gilt nur für die gescheiterte IA64-Architektur. Die jetzt von Intel als x64 (Ursprünglich von AMD entwickelt) bekannte Architektur emuliert für 32-Bit SW gar nix in SW. Alles wird 100% vom Prozessor direkt ausgeführt. Diese SW-Emulation war ein Hauptgrund wieso Intel mit IA64 gescheitert ist. Niemand wollte einen neuen Recher der für 99% der damaligen SW erheblich langsamer gewesen wäre. Einfach mal die Wiki-Artikel zu IA64 und x64 durchlesen.
Exakt. Ich besitze einen "normalen" i7 Prozessor von Intel, welcher die im Desktopbereich übliche x86-64 Architektur verwendet.

Was den Compiler angeht:
Ich verwende wie gesagt Visual Studio 2013, dementsprechend wird mit MSVC12 kompiliert (das Ding ist dem Delphi Compiler was Performance und Optimierung angeht um Jahrzehnte vorraus). Beide Versionen meines Programms habe ich aber als Release kompiliert, von daher werden beide Kompilate auch maximal optimiert. In IDA (Disassembler) konnte ich zudem einen, beim kurzen überfliegen, fast identischen Aufbau der Programme auf Assembler-Ebene feststellen.

Vielleicht bin ich ja Opfer eines Bootkits geworden, dass alle meine 32 Bit Anwendungen Softwareseitig emuliert (ne Spaß bei Seite; das Problem tritt auch auf einem zweiten PC mit Intel Prozessor auf)
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#18

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 1. Nov 2014, 20:10
Hast das mal eingegrenzt?
Sind es die Switches? Die Lookups? Die Unterfunktionen?
Wäre doch ein Leichtes, ein paar Tests zu machen.
Habe wie gesagt den VS2013 internen Profiler mehrmals drüberlaufen lassen. Dort sehe ich zwar, welche Funktion wie viel Prozent der Gesamtlaufzeit für sich beansprucht, aber die prozentualen Werte unterscheiden sich bei den 2 Versionen nicht wirklich.
Einfach mal auf die Blöde:
100000x Datenlookup durchlaufen lassen.
100000x Switch durchlaufen lassen.

die 100000 sind natürlich nur Richtwerte. Vermutlich musst Du das millionenfach machen. 1x 64bit 1x 32bit. Da wird es doch Unterschiede geben. Pfeif mal auf den Profiler.

Wenn trotzdem alles gleich ist, dann ... irrst Du dich wohl oder die Uhren gehen anders (Relativitätstheorie und so)
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#19

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 4. Nov 2014, 13:10
  • 32 Bit: ~9000ms
  • 64 Bit: ~800ms

[...]

die 64 Bit Version über 90% schneller sein kann?
90%?

Sind es nicht eher 10%?

Das Ergebnis hat mich dann doch ziemlich erstaunt (beide Kompilate als Release erstellt):
Weil der Unterschied so gering ist? Der wird ohnehin immer geringer. Wachstum verläuft anfänglich exponentiell, gerät aber irgendwann in seine Sättigung und flacht wieder ab (so daß es eher eine Hyperbeltangensfunktion gleicht). Wir sind schon wieder im abflachenden Zweig, sodaß bei den Bitanzahlverdoppelungen die tatsächlichen Geschwindigkeitssteigerungen immer mehr den erhofften hinterherhinken.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#20

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 4. Nov 2014, 13:14
Zähl mal die Nullen.

Da steht 9s und 0,8s. Gibt also rund 91%.
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 10:26 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