Hallo zusammen,
ich arbeite momentan an einem C++ Projekt mit Visual Studio 2013, zu dem ich leider nicht näheres sagen kann. Grob beschrieben ist es ein Parser für ein relativ komplexes Datenformat.
Jetzt habe ich mir mal eine kleine Anwendung geschrieben, welche einfach nur 100MiB an Daten sequenziell dekodiert.
Das Ergebnis hat mich dann doch ziemlich erstaunt (beide Kompilate als Release erstellt):
- 32 Bit: ~9000ms
- 64 Bit: ~800ms
Die Dekodierung basiert größtenteils auf arithmetischen und logischen Funktionen, ein paar Lookups in einer Datentabelle, ein paar Switches und das ganze verpackt in einige Unterfunktionen. Dazu kommen noch einige "sprintf" Aufrufe (welche laut Profiler sowohl in der 32, als auch der 64 Bit Version relativ langsam sind).
Ich weiß, es sind recht wenig Infos, aber kann sich jemand erklären, wie die 64 Bit Version über 90% schneller sein kann?
Viele Grüße
Zacherl