Code läuft unter Windows 2x schneller als unter Linux

9

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%     
hynner 01.05.2015, 07:56
quelle

1 Antwort

4

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).

    
Richard Hodges 01.05.2015, 08:13
quelle

Tags und Links