Programm unter Win schneller als unter Lin ?!



  • die Unterschiede bei clock lassen sich wahrscheinlich darauf zurückführen, dass die Intel Hardware wohl nur alle paar ms ein Zeitsignal schickt und somit eh keine genauen Messungen zulässt.



  • Trotzdem wäre in diesem Fall Win immernoch schneller als ein Konsole-debian 3.0! Also von den clock()-Werten ausgehend und die dürften ja wegen ANSI-C-Norm auf Linux und Windows gleich behandelt werden, nicht? Das Ganze muss doch einen Grund haben?!



  • Ist es denn zu abwegig, zu glauben, dass Hersteller proprietärer Compiler einfach eher (Stichwort: NDA) an Informationen von Intel kommen, als ein Projekt wie z.B. die GNU Compiler Collection?`

    Ist es darüber hinaus abwegig, zu glauben, dass ein Compiler der *ausschliesslich* auf der Intel Architektur arbeitet, optimierteren Code erzeugt als z.B. die GNU Compiler Collection, die nebenbei auch auf HP-PARISC, PowerPC, M68K, DEC Alpha, ... lauffähig ist und auch für die dortige CPUs Crosscompilieren kann?



  • Soll das heißen (j/n), dass Linux im ANSI-C-Vergleich zu Windows langsamer ist, da doch soviel unter Linux mit gcc kompiliert ist?

    Es ist nicht abwegig, nein, und der gcc ist ja auch nicht dafür bekannt, den saubersten Maschinencode zu erzeugen. Mich stört es bloß zu glauben, dass deswegen das komplette Linux langsamer ist als es sein könnte...



  • Original erstellt von <Mellon>:
    **Soll das heißen (j/n), dass Linux im ANSI-C-Vergleich zu Windows langsamer ist, da doch soviel unter Linux mit gcc kompiliert ist?

    Es ist nicht abwegig, nein, und der gcc ist ja auch nicht dafür bekannt, den saubersten Maschinencode zu erzeugen. Mich stört es bloß zu glauben, dass deswegen das komplette Linux langsamer ist als es sein könnte...**

    Das kann man so auch nicht sagen, da einige Teile unter Linux ja auch in Assembler geschrieben sind.



  • > Soll das heißen (j/n), dass Linux im ANSI-C-Vergleich zu Windows
    > langsamer ist, da doch soviel unter Linux mit gcc kompiliert ist?

    Wenn du unterschiedliche Compiler verwendest: Kein Vergleich möglich, da du nur Compilerunterschiede messen tust.

    > Es ist nicht abwegig, nein, und der gcc ist ja auch nicht dafür bekannt,
    > den saubersten Maschinencode zu erzeugen. Mich stört es bloß zu glauben,

    Nein, die performantesten Binaries erstellt der GCC nicht. Dafür ist er aber auf recht vielen Plattformen zu Hause -- was das Performance Argument wieder mehr als aufwiegt.

    > dass deswegen das komplette Linux langsamer ist als es sein könnte...

    Nicht ganz ausgeschlossen. Allerdings vergleichst du auch ein Multiuser Server Betriebssystem (Linux) mit einem Single User Desktop Betriebssystem (Windows). Wenn schon, dann nimm die Server Variante von Windows (Win2k Server oder Win2k3 Server).

    Was mir zu diesem Punkt auch noch einfällt:
    Wenn ein Programm unter Windows Amok läuft und sich die CPU an den Anschlag fährt (100% Auslastung) dann geht erst mal gar nix. Erst nach einer kleinen Weile, komme ich wieder die Kontrolle über Windows, dass ich zum Taskmanager wechseln kann um den Prozess zu beenden.

    Bei Unix und Linux hingegen, ist mir so etwas noch NIE passiert. Selbst wenn ein Programm dermassen gegen die Wand fährt, dass es alle Rechnerresourcen versucht sich zu krallen, bleibt das Betriebssystem noch immer noch soweit handhabbar, dass ich ohne grössere Verzögerungen den Prozess beenden kann.

    Von daher denke ich, dass unter Unix und Linux ein Programm nie 100% der Rechnerressource zugeteilt bekommt. Eben für o.g. Fall. Selbst wenn eine Festplatte laut "df" zu 100% voll ist, sind noch immer etwa 3..5% für "root" freigehalten. Könnte ja bei CPU Resourcen was ähnliches sein.

    Das würde zumindest erklären, warum die Laufzeitwerte bei Linux, Solaris/Sparc, MacOS X/PowerPC immer etwas schlechter liegen. Selbst bei deinen Tests auf ein und der selben Hardware, bei der du Linux gegen Windows testest.



  • Kann sein, dass der Scheduler unter Linux ein paar mal öfter pro Sekunde umschaltet, als der von Windows...



  • Original erstellt von <Descartes>:
    **Nein, die performantesten Binaries erstellt der GCC nicht. Dafür ist er aber auf recht vielen Plattformen zu Hause -- was das Performance Argument wieder mehr als aufwiegt.
    **

    Gut, diese Vorteile kann und will ich auch nicht bestreiten...

    Original erstellt von <Descartes>:
    **Wenn schon, dann nimm die Server Variante von Windows (Win2k Server oder Win2k3 Server).
    **

    Windows XP ist auch ein Multiuser-OS, wenn auch in einer "leicht" abgespeckten Variante 😉

    Original erstellt von <Descartes>:
    **
    Von daher denke ich, dass unter Unix und Linux ein Programm nie 100% der Rechnerressource zugeteilt bekommt. Eben für o.g. Fall. Selbst wenn eine Festplatte laut "df" zu 100% voll ist, sind noch immer etwa 3..5% für "root" freigehalten. Könnte ja bei CPU Resourcen was ähnliches sein.
    **

    Nuja, aber wenn ich das Programm auf einen nice von -20 setze, müsste es doch alles was es gibt für sich beanspruchen?! Unter top zeigt es dann auch eine über 99%ige CPU-Last an, von dem Ruckeln der Maus ganz zu schweigen.



  • Soll das heißen (j/n), dass Linux im ANSI-C-Vergleich zu Windows langsamer ist, da doch soviel unter Linux mit gcc kompiliert ist?

    Nein! Der GCC 3.2 soll ja sogar idr. schneller sein als der ICC! Vielleicht kommt der einfach mit deinem Code nicht so gut klar und dass du nun ein paar s länger brauchst (die wahrscheinlich in der Messtolleranz liegen), dann heisst das ja nicht, dass der GCC schlechter ist oder alles langsamer ist.

    Nein, die performantesten Binaries erstellt der GCC nicht.

    der GCC 3.2 soll ja angeblich gar nicht so schlecht sein, sogar besser als der ICC in vielen Fällen


Anmelden zum Antworten