Mmh... DOS und Windows 3.1 zählt wohl nicht mehr unbedingt zur primären Entwicklerplattform. Nicht schlecht wäre natürlich ein wirklich performanter C/C++ Compiler unter Linux.
...es ging um den erzeugten code, sondern eher um die Zeit die zum compilieren notwendig ist. Und das dauert mitm gcc. Ich denk ich weis wovon ich sprech denn ich benutz Gentoo. Da gibts schon schnellere Compiler für c/c++ gruss
ist doch zweitrangig hauptsache der code ansich ist schnell ist ja auch nur zweitrangig wielange der bau eines autos dauerts hauptsache das ergebniss ist gut um mal einen schönen vergleich zu bringen
Nein, das ist absolut nicht zweitrangig: ich schreibe Software fuer Linux: im Gegensatz zu den meisten hier wird der Code nicht einmal compiliert und gelinkt, sondern mehrmals pro Tag. Und ob ich 5 oder 10 Minuten "Leerlauf" habe, ist durchaus relevant. Und der GCC 3.2 ist deutlich langesamer beim compilieren von C++-Code als der GCC 2.95.X (deshalb habe ich den alten auch wieder installiert)
Besser und sicher auch schneller, als den alten, im c++ Bereich nicht sehr standardkonformen gcc2.9.5 zu benutzen, dürfte die Verwendung von "Compiler Cache" sein. -> http://ccache.samba.org/
Manchmal bringt es mehr, die Abhängigkeiten im Projekt zu verringern z.B: durch geschickte Wrapper Klassen. Das spart häufig das eine oder andere File andauernt neu zu kompilieren
Es ist auch nicht so, dass jede Datei immer neu kompiliert werden muss. "Geschickte" Wrapper haben uebrigens den Nachteil, dass die Anzahl der Objekte steigt, und damit das Linken laenger dauert.
Plugins waeren die bessere Loesung - was aber auch nicht immer Sinn macht und nicht immer moeglich ist.
Der Vergleich hinkt etwas. Ein Auto baut man in der Regel nur einmal. Ein Programm wird jedoch zig mal compiliert. Meiner Meinung nach ist die Compilierungsgeschwindigkeit mit das wichtigste, neben der IDE.
und die c++-symboleinheit wurde stark verbessert, das alles sollte zu schnelleren Compiles führen. Außerdem solltest du vielleicht -O3 durch -O2 ersetzen, da der gute gcc sonst richtig lange nachdenkt manchmal, bringt leider allermeistens nichts...
Was viele nicht begreifen und anscheinend auch nicht wollen ist, dass der gcc ein auf portierung ausgelegter Compiler ist und deswegen die optimierung also die Geschwindigkeit des ausgefuehrten Codes deutlich hinter compilern zurueckbleibt, die auf eine einzige prozessorfamilie zugeschnitten sind.
Der watcom wird sicher viel an performance bringen koennen auf der intelseite.
Von Manfred Tremmel am Di, 11. Februar 2003 um 09:57 #
Na, so groß sind die Unterschiede nun oftmals nicht, bei den ersten Benchmarks auf dem Athlon 64 (32 Bit Software) hat der gcc im allgemeinen besser abgeschnitten als der icc. Das bei Intel-Prozessoren die Intel-Jungs den einen oder anderen Trick mehr drauf haben, sollte nicht so sehr verwundern. Und dass einige Optimierungsversuche des icc auch schon mal fehlerhaften code erzeugen ist ja leider auch kein Geheimnis. Eine so schlechte Performance liefern glibc 2.3.x + gcc 3.3 dann künftig ja wohl auch nicht
Der Intel-Fortran-95 Compiler (wie auch der C++) sind auch in der neuesten Version (7.0) für Linux kostenlos (und nicht für kommerziellen Gebrauch) erhältlich unter: http://www.intel.com/software/products/global/eval.htm Hier muß man "Non-Commercial Unsupported Version" anklicken, dann geht's zum Download. Die gratis-Version ist zwar ohne Support, funktioniert aber ohne sonstige Einschränkungen. Die Doku ist per PDF dabei.
Von Thorsten Schnebeck am Di, 11. Februar 2003 um 08:41 #
Bleibt nur noch die Frage, warum das eine Frage sein soll? Hilft Watcom Qt kompatibler auf PPC oder SPARC zu machen? Oder für ein Qt für Win3.1 oder DOS? Watcom wird nur eine Rolle in der GNU-Welt spielen, wenn er im Rahmen seiner Plattformen kompatibel zum gcc ist.
Wie schon erwähnt, die kleinen Dinge aus der Zauberkiste wie precompiled Headers werden dem neuen GCC schon das Rennen beibringen. Als ich das erstemal ne grössere Apps unter MSC mit vorkompilierten Headern erstellt hatte, habe ich nicht schlecht geguckt was das ausmacht. Das wird ein guter Benchmark werden, dann mal KDE oder nur die QT mal mit und mal ohne zu Compilieren :)
Plattformoptimierte Compiler scheinen immer etwas flinker als so ein Multitalent wie der GCC. Aber mittlerweile erzeugt er wenigstends recht sauberen Code und das auch bei > -O2
Das Kompilieren... Die Header-Files werden alle einmal eingelesen und ein File erstellt was alle benötigten Informationen beihnhaltet (Symbole, Verweise etc.) Der Übersetzungsvorgang geht damit deutlich schneller (weniger Redundanz).
gruss
hauptsache der code ansich ist schnell
ist ja auch nur zweitrangig wielange der bau eines autos dauerts
hauptsache das ergebniss ist gut
um mal einen schönen vergleich zu bringen
Und der GCC 3.2 ist deutlich langesamer beim compilieren von C++-Code als der GCC 2.95.X (deshalb habe ich den alten auch wieder installiert)
-> http://ccache.samba.org/
"Geschickte" Wrapper haben uebrigens den Nachteil, dass die Anzahl der Objekte steigt, und damit das Linken laenger dauert.
Plugins waeren die bessere Loesung - was aber auch nicht immer Sinn macht und nicht immer moeglich ist.
und die c++-symboleinheit wurde stark verbessert, das alles sollte zu schnelleren Compiles führen. Außerdem solltest du vielleicht -O3 durch -O2 ersetzen, da der gute gcc sonst richtig lange nachdenkt manchmal, bringt leider allermeistens nichts...
Der watcom wird sicher viel an performance bringen koennen auf der intelseite.
mad
Und dass einige Optimierungsversuche des icc auch schon mal fehlerhaften code erzeugen ist ja leider auch kein Geheimnis. Eine so schlechte Performance liefern glibc 2.3.x + gcc 3.3 dann künftig ja wohl auch nicht
(leider steht da nichts über die
FORTRAN Version, also 90, 95 oder gar 77)
Unter Linux gibs im Moment nur FORTRAN 77
Die anderen Compiler von INTEL oder NAG
kosten halt Geld :(
Markus
neuesten Version (7.0) für Linux kostenlos (und nicht für kommerziellen
Gebrauch) erhältlich unter:
http://www.intel.com/software/products/global/eval.htm
Hier muß man "Non-Commercial Unsupported Version" anklicken, dann
geht's zum Download. Die gratis-Version ist zwar ohne Support, funktioniert
aber ohne sonstige Einschränkungen. Die Doku ist per PDF dabei.
Das wird ein guter Benchmark werden, dann mal KDE oder nur die QT mal mit und mal ohne zu Compilieren :)
Plattformoptimierte Compiler scheinen immer etwas flinker als so ein Multitalent wie der GCC. Aber mittlerweile erzeugt er wenigstends recht sauberen Code und das auch bei > -O2
Was wird beschleunigt? Das Kompilieren oder der ausgeführte Code?
Der Übersetzungsvorgang geht damit deutlich schneller (weniger Redundanz).