Ich habe einen Code, der unter Windows zweimal schneller läuft als unter Linux. Hier sind die Zeiten, die ich gemessen habe:
%Vor%Es scheint wirklich ein zu großer Unterschied zu sein.
Hier ist der Code:
%Vor%All dies wurde auf demselben Rechner mit Windows 8 vs Linux 3.19.5 (gcc 4.9.2, clang 3.5.0) gemessen. Sowohl Linux als auch Windows sind 64bit.
Was könnte der Grund dafür sein? Einige Scheduler-Probleme?
BEARBEITEN: Es wurde durch den Aufbau von 32b Binärdateien auf Windows im Gegensatz zu 64b Binärdateien auf Linux verursacht, hier sind 64b Zahlen für Windows:
%Vor%Sie sagen nicht, ob die Windows / Linux-Betriebssysteme 32 oder 64 Bit sind.
Wenn Sie auf einem 64-Bit-Linux-Rechner die Größe_t in ein int ändern, werden Sie feststellen, dass die Ausführungszeiten für Linux auf einen ähnlichen Wert fallen wie für Windows.
size_t ist ein int32 auf win32, ein int64 auf win64.
EDIT: habe gerade deine Windows Disassembly gesehen.
Ihr Windows-Betriebssystem ist die 32-Bit-Variante (oder zumindest haben Sie für 32-Bit kompiliert).
Tags und Links c++ benchmarking windows linux