Algorithmus unter Vista x64 kompiliert läuft viel langsamer
-
Hallo erstmal.
Ich habe für längere Zeit ein Programm auf einem Pentium 4 mit Win XP 32bit und Visual Studio 2005 entwickelt. Nun habe ich einen neuen Rechner mit einen Intel Quadcore und 8GB RAM. Das Betriebssystem ist Windows Vista x64 Enterprise. Als Entwicklungsumgebung verwende ich nun Visual Studio 2008.
Um zu testen wie schnell mein Programm läuft, habe ich erstmal das bereits erstellte Programm von dem alten auf den Rechner kopiert und ausgeführt: siehe da, das Programm war gut 5mal schneller. Super
.Dann habe ich das Programm schließlich auf dem neuen Rechner kompiliert und ausgeführt. Siehe da: das Programm läuft plötzlich deutlich langsamer als auf dem alten Rechner
. Ich habe das Prgramm sowohl als 32Bit als auch als 64Bit Anwendung kompiliert. Die 64Bit Version war nochmals langsamer
.
Und natürlich kompiliere ich als Release.Langsam bezieht sich hierbei immer auf einen im Prgramm enthaltenen Registrierungsalgorithmus für 3D Datensätze. Den Quellcode darf ich nicht veröffentlichten. Er verwendet aber hauptsächliche normale Rechenoperationen und Strukturen der STL, Schleifen etc. Das übliche also.
Hat jemand ähnliche Erfahrungen gemacht oder ein Tipp.
Vielen Dank im voraus.

-
VS2008 hat noch mehr "Sicherheitsüberprüfungen" und ist somit "per-default" langsamer

Und vermutlich sind Deine Datentypen nicht "korrekt" aligned...
Siehe: Windows Data Alignment on IPF, x86, and x64
http://msdn.microsoft.com/en-us/library/aa290049
-
GlubbForever schrieb:
Hat jemand ähnliche Erfahrungen gemacht oder ein Tipp.
Das erste was ich probieren würde, wäre
#define SECURE_SCL 0cu André
-
Danke für die Antworten. Habe das Problem nun aber gefunden: beim automatischen Konvertieren von VS 2005 auf VS 2008 hat er zwar fast alle Projekteigenschaften übernommen, aber eine wichtige nicht: Optimization war auf Custom und nicht auf Speed. Das hatte ich übersehn.
Somit lief das Programm 10-15mal langsamer. Nun geht es aber ab wie Schnitzel. 