Performance GNU vs MS Compiler



  • Danke, das waren doch mal zwei kompetente Antworten, also nix mit deutlich schneller für mein Verständnis.



  • Warum sind 5% nicht deutlich schneller? 😕 Wenn ein Algorithmus 5% schneller läuft, und der Algorithmus 5 Tage laufen muß, werden diese 5% sehr wohl relevant sein! Dann ist der ICC-Algo 6 Stunden früher fertig. Wenn jemand was über Monate rechnen lassen muß (z.B. ein PIXAR-Film), wird der GCC abstinken.

    Wenn bei der Formel 1 ein Auto 0,5 Sek. schneller pro Runde ist als die Konkurrenz, mag die 0,5 Sek. lächerlich sein für einen Laien. Aber ein Rennen dauert im Schnitt 60 Runden! Das Auto das 0,5 Sek. schneller als die Konkurrenz ist, wird am Ende des Rennens 30 Sek. früher durch das Ziel fahren, als das langsamere Auto. Und das zeigt sich in jedem Rennen, das es keine Theorie ist.

    Also, es macht sehr wohl was aus, wenn der ICC oder MSVC nur ein paar Prozent schnelleren Code generiert. Vielleicht nicht für eure Programme, aber ihr seid nicht die einzigen, die Software einsetzen.



  • Artchi schrieb:

    Immer wieder beachtlich, wie die Menschen ihre Bedürfnisse auf den Rest der Welt übertragen.

    Langsam. Es hat ja niemand behauptet, daß es egal sei. Der Fragesteller hat eine Größenordnung genannt, die durch derartige Optimierungen nicht erzielbar ist, was sie für ihn irrelevant macht. Wenn du es nicht glaubst, lies nochmal genauer: da steht "also nix mit deutlich schneller für mein Verständnis".

    (Hoppla, da wurde die "immer wieder erstaunlich"-Anmerkung, über die ich mich gerade noch belustigen wollte, plötzlich herauseditiert 😃 Anyways: immer wieder erstaunlich, wie gerne mal voreilig zurückgeschlagen wird, anstatt einfach mal genauer zu lesen.)



  • Habe ich weg editiert, bevor du die Antwort gepostet hast. :p Siehe Timestamp.



  • 5% sind nur 5%. Das ist wenig, wenn man sieht, daß man bereitwillig mit der Sprachenwahl >100% zahlt.
    Du argumentierst fast wie ein Wirtschaftsingenieur. Wenn man eine Million Autos baut, dann sind die Einsparungen durch die minderwertigen Rückspiegelbefestigung von einem halben Cent auf einmal 5000 Euro wert!
    Das gesamte Rennen ist Theorie.



  • Interessant wäre, wieviele Projekte werden denn in der Praxis so geschrieben, dass man sie mit mehreren Compilern kompilieren kann 😕
    Ich kenne das nämlich so, dass wenn MS Visual Studio Projekt - für immer und ewig MS Visual Studio. Wenn gcc - für immer und ewig gcc. Bei gcc hat man vielleicht noch den Vorteil, dass es portabel ist und unter Windows und Linux läuft.
    Daher macht es denn Sinn, die Compiler mit künstlichen Algorithmen zu vergleichen 😕
    Wenn vergleichen, dann doch mit Porjekten aus der freien Wildbahn... aber da wäre der Aufwand zu hoch, um den Quellcode "Compiler-kompatibel" umzuschreiben, oder 😕


  • Mod

    Es gibt sowas wie einen C und einen C++ Standard. Den können alle Compiler übersetzen. Solltest du mal ausprobieren, das funktioniert wirklich!

    Ich schreibe beruflich Programme die mit 4 verschiedenen Compilern(Gnu, Sun, Intel, IBM) benutzt werden, ganz ohne Probleme.



  • Artchi schrieb:

    Warum sind 5% nicht deutlich schneller? 😕 Wenn ein Algorithmus 5% schneller läuft, und der Algorithmus 5 Tage laufen muß, werden diese 5% sehr wohl relevant sein! Dann ist der ICC-Algo 6 Stunden früher fertig. Wenn jemand was über Monate rechnen lassen muß (z.B. ein PIXAR-Film), wird der GCC abstinken.

    Wenn bei der Formel 1 ein Auto 0,5 Sek. schneller pro Runde ist als die Konkurrenz, mag die 0,5 Sek. lächerlich sein für einen Laien. Aber ein Rennen dauert im Schnitt 60 Runden! Das Auto das 0,5 Sek. schneller als die Konkurrenz ist, wird am Ende des Rennens 30 Sek. früher durch das Ziel fahren, als das langsamere Auto. Und das zeigt sich in jedem Rennen, das es keine Theorie ist.

    Also, es macht sehr wohl was aus, wenn der ICC oder MSVC nur ein paar Prozent schnelleren Code generiert. Vielleicht nicht für eure Programme, aber ihr seid nicht die einzigen, die Software einsetzen.

    Wenn ich das richtig verstanden habe sind die 5% auch nicht stetig aber egal, wenn es dir auf jedes Prozentchen ankommt dann bist du aber mit dem MS-Compiler falsch beraten, da ja der Intel-Compiler nochmals besser optimiert. Aber deine Begründungen sind eh sehr schwach, da zumal auch unterschiedliche RAMs oder CPUs diese geringen Performanceschwankungen hervorrufen können.

    Für Praxis sind diese 5% heutzutage also wirklich völlig irrelevant, sorry.



  • SeppJ schrieb:

    ... Ich schreibe beruflich Programme die mit 4 verschiedenen Compilern(Gnu, Sun, Intel, IBM) benutzt werden, ganz ohne Probleme.

    Machst du wirklich "make -f Gnu", "make -f Sun", "make -f Intel" und "make -f IBM"?
    Respekt 👍



  • Traurig wenn man ohne IDE nicht mehr programmieren kann, wenn das der Stroustrup liest 😃 der arbeitet am liebsten mit einem einfachen Editor.


  • Mod

    abc.w schrieb:

    SeppJ schrieb:

    ... Ich schreibe beruflich Programme die mit 4 verschiedenen Compilern(Gnu, Sun, Intel, IBM) benutzt werden, ganz ohne Probleme.

    Machst du wirklich "make -f Gnu", "make -f Sun", "make -f Intel" und "make -f IBM"?
    Respekt 👍

    😕 Nein, ich mache make . Keine Anpassung oder vorbereitung des Codes in irgendeiner Weise ist notwendig. Welche tollen Compilererweiterungen benutzt du denn ständig, dass dich dies so verwundert, dass man auch ohne sie auskommt?



  • __cpp schrieb:

    Traurig wenn man ohne IDE nicht mehr programmieren kann, wenn das der Stroustrup liest 😃 der arbeitet am liebsten mit einem einfachen Editor.

    Vom Erfinder seiner Sprache kann man schon verlangen *gg*



  • Der weiß gar nicht was im Hintergrund seiner IDE abgeht, es gibt halt viele die ihre Programme zusammenklicken ist ja auch ok. Jeder halt wie er am besten will/kann.

    @Zeus: Ja das kann man erwarten, eigentlich dürfte er auch nur mit Lynx browsen 😃 Da könnte man genauso schicken Aussagen treffen wie für Chuck Norris 😃



  • abc.w schrieb:

    SeppJ schrieb:

    ... Ich schreibe beruflich Programme die mit 4 verschiedenen Compilern(Gnu, Sun, Intel, IBM) benutzt werden, ganz ohne Probleme.

    Machst du wirklich "make -f Gnu", "make -f Sun", "make -f Intel" und "make -f IBM"?
    Respekt 👍

    Sowas kann man von einem Buildtool automatisch erledigen lassen. Oder man schreibt sich einfach nur einmalig ein Script.
    Und was die Syntax angeht: es gibt bei den aktuellen Compilern nur noch sehr wenige Inkompatibilitäten. Und diese kann man immer durch einen automatisierten Build recht schnell erkennen und beheben.



  • @SeppJ und Artchi: Ah, dann könnt ihr mir vielleicht hier weiterhelfen: http://www.c-plusplus.net/forum/viewtopic-var-t-is-257817-and-highlight-is-.html 🙂



  • SeppJ schrieb:

    Der größte Unterschied war der Intel mit höchster Optimierung (PGO) gegen den GCC mit einfachster (O1) Optimierung, das waren 14 %. Ob sich dafür aber die überaus lange Compilierungszeit lohnt ist eine andere Frage.

    Würde es sich bei einem Computerspiel lohnen?
    Also sich auch in 14 % mehr fps niederschlagen?

    Wenn ja, was kostet der Intelcompiler?



  • Noch was:

    Und hätte man diesen Geschwindigkeitsvorteil auch auf AMD Systemen?



  • abc.w schrieb:

    SeppJ schrieb:

    ... Ich schreibe beruflich Programme die mit 4 verschiedenen Compilern(Gnu, Sun, Intel, IBM) benutzt werden, ganz ohne Probleme.

    Machst du wirklich "make -f Gnu", "make -f Sun", "make -f Intel" und "make -f IBM"?
    Respekt 👍

    Schonmal von:

    gcc -std=c99
    

    gehört?

    Entsprechende Optionen gibt's sicher auch für die anderen Compiler.


  • Mod

    Narzes schrieb:

    Würde es sich bei einem Computerspiel lohnen?
    Also sich auch in 14 % mehr fps niederschlagen?

    Unwahrscheinlich. Deine Framerate hängt nur sehr bedingt mit der Effizienz des Codes auf dem Prozessor zusammen. Für FPS ist ja der Code entscheidend der von der Grafikkarte ausgeführt wird und dies ist zu 99% der Programmcode der Grafiktreiber. Und den macht der Hersteller des Grafikchips.

    Wenn ja, was kostet der Intelcompiler?

    Eine Einzellizenz für professionelle Entwickler nur 600$. Billiger ab 10. Aber nur der Compiler, ganz ohne Entwicklungstools.

    Für akademische Zwecke ist er deutlich billiger.

    Für unprofessionelle Zwecke ist er gratis.



  • SeppJ schrieb:

    Für unprofessionelle Zwecke ist er gratis.

    Du meinst für nicht-kommerzielle. Und dies gilt auch nur für Linux.


Anmelden zum Antworten