Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

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

AW: Enormer Performanceunterschied zwischen 32 und 64 Bit?

  Alt 31. Okt 2014, 23:49
Benutze momentan ausschließlich statischen Speicher (bzw. einen Vector, welcher aber nur einmalig alloziiert wird), deshalb denke ich nicht, dass dieser enorme Boost mit geringerer Speicherfragmentierung zu erklären ist.
Spezialinstruktionen kann ich ebenfalls zu 99% ausschließen. Sah auf den ersten Blick in IDA zumindest alles recht ähnlich aus und die selben AVX Instructions, die ich bei der 64 Bit Version finden konnte, existierten meistens auch beim 32 Bit Kompilat.

Hatte den Verdacht, dass es daran liegt, dass ich viele 64 bit Integer verwende (auch unter 32 Bit), aber laut Stackoverflow macht das von der Performance her keinen allzu drastischen unterschied (Addition war glaube ich 2 statt 1 Instruktion, etc).

Die einzigen zwei Dinge, die mir noch in den Sinn kamen, sind:
  1. die effizientere Callingconvention unter 64 Bit
  2. die zusätzlichen 8 General-Purpose Register unter 64 bit

Bloß lese ich überall, dass man bei 64 Bit Kompilaten mit ca. 2-20% Performancezuwachs rechnen kann. In meinem Fall sind es halt über 90%, weshalb ich mir irgendwie Gedanken mache unter 32 Bit auf gut Deutsch irgendwas verkackt zu haben.

Der Profiler von VS2013 kann mir leider auch keinen genaueren Einblick verschaffen. Der prozentuale Anteil der einzelnen Funktionen ist bei beiden Kompilaten in etwa gleich. Der einzige Unterschied ist wirklich, dass die Ausführung der Methoden unter 32 bit signifikant länger dauert.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat