PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Performance: Linux vs. Windows


Ulf
2013-03-28, 19:51:11
Hallo,

unter Linux schrieb ich ein Programm, welches umfangreiche Rechnungen ausführen muss (mit double Genauigkeit). Die CPU wird dabei mit mehreren Threads zu 100% ausgelastet. Testweise habe ich das Programm auch unter Windows kompiliert und habe die Laufzeiten verglichen. Die jeweiligen Release-Versionen unterscheiden sich gewaltig: 3.2 Minuten unter Linux, 4.6 Minuten unter Windows. Die Unsicherheiten sind dabei nahezu vernachlässigbar.

Kann das denn möglich sein? Oder gibt es bei Windows noch ungenutztes Potential?

Es traten an: g++ 4.7.2 gegen VS2010.

Kennt ihr ähnliche Ergebnisse, oder entspricht das nicht der Allgemeinheit?

del_4901
2013-03-28, 19:56:31
Du spinlockst wohl deine Threads? :udevil:
Setz dich ran mit einem richtigen Profiler, alles andere is Kaffeesatzleserei. Ich kann mir nicht vorstellen wiso es da grosse Unterschiede geben sollte. Vielleicht verzeiht Linux in der einen Situation schlechten Code besser als Windows.

Shink
2013-03-28, 20:04:56
Kann das denn möglich sein? Oder gibt es bei Windows noch ungenutztes Potential?
Naja, vielleicht optimiert der gcc (der ja normalerweise nicht schneller ist...) da was weg. Vermutlich kannst du den MS-Compiler auch noch etwas optimieren.
Ansonsten fällt mir da nichts ein, wenn das Programm wirklich nur auf die CPU zugreift.

Was mir eher öfters negativ auffällt unter Windows, ist die Performance von z.B. NTFS beim Umgang mit vielen kleinen Files. (z.B. etwas wie mvn clean)

Nasenbaer
2013-03-28, 23:40:57
Naja, vielleicht optimiert der gcc (der ja normalerweise nicht schneller ist...) da was weg. Vermutlich kannst du den MS-Compiler auch noch etwas optimieren.
Ansonsten fällt mir da nichts ein, wenn das Programm wirklich nur auf die CPU zugreift.

Was mir eher öfters negativ auffällt unter Windows, ist die Performance von z.B. NTFS beim Umgang mit vielen kleinen Files. (z.B. etwas wie mvn clean)
Das sind die meisten Linux-Dateisysteme auch nicht viel besser (vgl. PCGH vom März). Nur Reiser4 zieht bei dieser speziellen Disziplin davon.


Aber setz wirklich mal nen Profiler drauf an. Würde mich auch interessieren was da das Problem ist.

=Floi=
2013-03-29, 04:40:27
nimm erstmal den gleichen compiler!

Exxtreme
2013-03-29, 11:48:14
Die Compiler sind nicht gleich auch wenn sie ähnlich heissen.

Berni
2013-03-29, 12:48:41
Ein anderer Ansatzpunkt: Ist die Anzahl der Threads des Programms denn gleich der Anzahl an CPUs? Es könnte sich auch um Unterschiede im Scheduling handeln.

Gast
2013-03-31, 05:33:02
Wurde unter Windows pthreads verwendet?

Vielleicht liegt es an irgendeiner Wrapper Bibliothek?

Mad-Marty
2013-04-02, 13:17:46
Nein das kann nicht sein, ich vermute hier eher einen compilerunterschied.
Benutze erstmal für beide den gcc in selber version.

Und danach würde ich suchen, ob deine "umfangreichen berechnungen" selfmade sind oder irgendwelche bibliotheken nutzen, die eine schwankende qualität haben.