Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

: Sortie de GCC 3.4.0

Posté par Yannig. Modéré le 21 avril 2004.
Sortie d'une version majeure de GCC qui en est à sa version 3.4.0. Au menu de nombreuses optimisations permettant des augmentations de performance (l'annonce parle de 7,5% à 11% de gain sur plate-forme i386 selon les options d'optimisation).
La liste des changements signale également la suppression des options qui avaient été marquées obsolètes dans la version 3.3.x ou encore des problèmes de compatibilité binaire pour les plateformes SPARC ou MIPS.

> Lire la dépêche (136 commentaires, moyenne: 1,8).  

Vous avez demandé le commentaire #396711.

Re: Sortie de GCC 3.4.0

Posté par RB () le 21/04/2004 à 13:24. (lien). Évalué à 7.

Experiments made on i386 hardware showed an 11% speedup on -O0 and a 7.5% speedup on -O2 compilation of a large C++ testcase.

Je crois pas que ça veut dire que les performances augmentent, mais seulement que la compilation va plus vite.

  • [^]Re: Sortie de GCC 3.4.0

    Posté par MiniMoi () le 21/04/2004 à 13:30. (lien). Évalué à 2.

    Et oui ca aurait ete trop beau... C est bien le temps de comilation dont il est question... :'-(

    http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361(...)

    [3.3/3.4/3.5 regression] C++ compile-time performance regression

    • [^]Re: Sortie de GCC 3.4.0

      Posté par ufoot (page perso, ) le 21/04/2004 à 13:45. (lien). Évalué à 4.

      Ouais enfin moi j'ai un projet en C++ sur le feu et autant il n'a pas trop de problèmes de perf à l'exécution (ça tourne bien sur un P200 si mes souvenirs sont bons) autant à la compilation c'est la cata même avec mon bel Athlon je dépasse allègremment la minute à chaque compil, donc 11% de mieux à la compil: j'achète!

      PS: fût un temps où je développais ce projet sur le fameux P200 et là la compil c'était carrément 10minutes à 1/2 heure, houla...

      • [^]Re: Sortie de GCC 3.4.0

        Posté par Cédric Chevalier (page perso, ) le 21/04/2004 à 14:33. (lien). Évalué à 4.

        Personnellement, je préfererrais gagner plus sur l'éxécution, même si la compilation est plus longue (du moins lorsqu'on met les optimisations).

        Et puis, si ça compile trop vite on aura plus le temps d'aller se détendre sur DLFP ;-)

        • [^]Re: Sortie de GCC 3.4.0

          Posté par Daneel () le 21/04/2004 à 16:44. (lien). Évalué à 4.

          Je suis du même avis, mais toute optimisation est bonne à prendre. Quand on a une Gentoo, on s'intéresse -aussi- un peu à la vitesse de compilation et celle ci a quand même l'air conséquente.

        [^]Re: Sortie de GCC 3.4.0

        Posté par Guillaume Laurent (page perso, ) le 21/04/2004 à 14:41. (lien). Évalué à 3.

        Ah ouais, plus d'1mn de temps de compil, c'est vraiment enorme. :-)

        • [^]Re: Sortie de GCC 3.4.0

          Posté par ufoot (page perso, ) le 22/04/2004 à 06:17. (lien). Évalué à 2.

          Oui non mais 1min à chaque fois que je modifie un ".h". Le rebuild complet lui est plutôt dans les 5 ou 10 min (donc 1h ou 2h sur l'ancienne machine...). Honnêtement 1 min pour savoir si ta petite modif d'une ligne compile ou pas, c'est lourd. Evidemment on peut après coder "par paquets" en limitant le nombre de compils et en ne se servant pas du compilo pour chopper les erreurs de syntaxe mais en anticipant. M'enfin c'est méga chiant. Du coup maintenant je préfère me tourner vers les langages de script.

          • [^]Re: Sortie de GCC 3.4.0

            Posté par Guillaume Laurent (page perso, ) le 22/04/2004 à 14:08. (lien). Évalué à 1.

            Ah, pareil chez moi, 2-3mn de temps de compil en moyenne, presque 20 pour le total, et c'est vrai, ca gave. Malheureusement les langages de scripts ne sont pas une option pour ce que je fais, en attendant je garde un bouquin a cote du clavier pour lire pendant les compils :-).

        [^]Re: Sortie de GCC 3.4.0

        Posté par gS () le 21/04/2004 à 15:07. (lien). Évalué à 5.

        Pour accelerer les compilation essayez ccache (ou distcc, si vous avez plusieurs machines dispo).
        Comme son nom l'indique presque ccache stocke les resultats de compilation précédents et les ressorts si les sources sont identiques.
        Sur notre projet, nous sommes passes de 12 minutes a 1 minute trente (et comme on utilise qmake/Qt et qu'il gere pas super bien les dépendences, on etait obligé de tout recompiler tres frequemment).
        Bref, ca marche pas mal et on a pas encore eu de problemes avec.

        a++
        Guillaume.

        • [^]Re: Sortie de GCC 3.4.0

          Posté par harbort1 () le 22/04/2004 à 07:02. (lien). Évalué à 4.

          Dans mon labo on est passé SCons et il gère bien les dépendances (et Qt avec les moc,ui, ...) et considère un fichier modifié non pas uniquement sur la base de la date (même s'il l'utilise) mais sur la base d'un checksum. AMA, mieux vaut un bon système de compilation que de rajouter les couches avec ccache ou autre ...

          Mais pour tout dire, c'est loin de suffire ! Pour interfacer mon programme avec Python j'utilise Boost (pour ceux qui ne connaissent pas Boost est un ensemble de bibliothèques qui pour la plupart sont super bien mais qui ont le gros défaut d'utiliser les templates à outrance) et ce seul petit ajout à fait passé mon programme de 30sec. de compil. à près de 20 min !!!!!! Et les systèmes de caches n'y font rien (puisque SCons gère ça correctement).

          Donc j'attendais avec impatience cette nouvelle version de g++ pour les precompiled headers et pour le nouveau parseur !

          Ce matin se sera : G++ LE GRAND TEST ! En direct live sur ma machine :)

          • [^]Re: Sortie de GCC 3.4.0

            Posté par gS () le 22/04/2004 à 09:04. (lien). Évalué à 2.

            Ouaip, c'est vrais que Scons a l'air pas mal.
            Je l'ai essayé pour un tout petit projet fait a la maison parce que j'avais la flemme de me refaire toute la choucroute automake/autoconf pour gérer les dépendences proprement et ca marche super bien.
            Il faut quelques minutes pour comprendre comment ecrire l'équivalent du makefile et hop ca roule!
            Je suis en train de réflechir a la façon dont je pourrais migrer le projet de l'équipe au boulot (pas une mince affaire).
            En tout cas, meme pour un tout petit projet d'une dizaine de fichiers, le bénéfice est immédiat!

        [^]Re: Sortie de GCC 3.4.0

        Posté par Troy McClure (page perso, ) le 21/04/2004 à 16:11. (lien). Évalué à 7.

        La lenteur de g++ est effectivement un gros problème. D'après les benchs publiés sur la ml de gcc ( http://gcc.gnu.org/ml/gcc/2004-04/msg00913.html(...) par ex) il y a eu de gros progrès avec la 3.4, en particulier pour l'edition de lien en '-g' (faut dire que la 3.3 partait de loin..)

        Par contre icpc (le compilo c++ d'intel) reste encore 2 fois plus rapide à compiler, genere un code 15% plus performant en moyenne, et des executables sensiblement plus petits. La future version de gcc (3.5 ou 4.0 c'est pas encore décidé) changera peut-etre la donne..

        • [^]Re: Sortie de GCC 3.4.0

          Posté par MiniMoi () le 21/04/2004 à 19:37. (lien). Évalué à 1.

          Aïe je ne savais pas que g++ etait si lent a compiler et qu il se faisait battre par les autres compilateurs pour la rapidite du code?
          Quelqu un sait il pourquoi? Pour la rapidite de compilation c est peut etre le respect de la norme ANSI, mais pour l efficacite du code?

          Moi qui pensais que comme gcc est le meilleur compilateur C, g++ est le meilleur compilateur C++...

          • [^]Re: Sortie de GCC 3.4.0

            Posté par peau chat () le 21/04/2004 à 20:00. (lien). Évalué à 1.

            Moi qui pensais que comme gcc est le meilleur compilateur C, g++ est le meilleur compilateur C++

            Houla... non pas du tout. GCC et G++ sont même des grosses bouses au niveau performances et code généré. Par contre ils ont le gros avantage d'être libre et multi-plateformes.

            GCC est complètement hors-jeu pour ceux qui cherchent à faire des clusters haute performance par exemple :

            http://www.hs.uni-hamburg.de/EN/For/ThA/phoenix/index.html(...)

            Mais lui, au moins, il est multiplateformes :-)

            • [^]Re: Sortie de GCC 3.4.0

              Posté par Guillaume POIRIER (page perso, ) le 21/04/2004 à 20:36. (lien). Évalué à 2.

              non pas du tout. GCC et G++ sont même des grosses bouses au niveau performances et code généré.

              Alors là, je ne peux pas te laisser dire ça! Dire que c'est une grosse bouse, c'est vraiment manquer de respect à l'équipe de dev de gcc.
              Il ne faut pas perdre de vue qu'il est tout à fait impossible de faire aussi bien qu'un compilateur spécifique à une architecture et à quelques processeurs, pour des questions que seules plusieurs heures de cours de compilation permettent de comprendre vraiment.
              Cela dit, quand on regarde les benchs:
              http://people.redhat.com/dnovillo/spec2000/gcc/global-run-ratio.htm(...)
              On voit que gcc n'est vraiment pas si mal étant donné toutes les contraintes de base dût à sa nature multiplateforme...

              • [^]Re: Sortie de GCC 3.4.0

                Posté par peau chat () le 21/04/2004 à 22:41. (lien). Évalué à 4.

                Il ne faut pas perdre de vue qu'il est tout à fait impossible de faire aussi bien qu'un compilateur spécifique à une architecture et à quelques processeurs

                Bien sûr, c'est ce que je dis : il a l'avantage d'être multi plateformes !

                J'ai en mémoire des articles/interviews d'ingénieurs d'IBM qui travaillent sur les compilos IBM mais également sur l'optimisation de GCC pour le PowerPC. Ils le disent clairement : le fait que GCC soit multiplateformes ne permet pas de faire les mêmes optimisations.

                Il n'empêche, que le code final est moins performant.

                Les gars de Phoenix ont même parlé de différences de l'ordre de 60%

                Il n'y a aucune honte à cela, mais il ne faut surtout pas laisser croire béatement que GCC a les meilleures perfs sous le simple prétexte qu'il commence par un « G ».

                En puis, pour le C++, le problème de G++ est connu et décortiqué depuis longtemps...

                [^]Re: Sortie de GCC 3.4.0

                Posté par Moby-Dik () le 22/04/2004 à 12:46. (lien). Évalué à 2.

                Alors là, je ne peux pas te laisser dire ça! Dire que c'est une grosse bouse, c'est vraiment manquer de respect à l'équipe de dev de gcc.

                Allons voyons. On n'a pas le droit de critiquer un logiciel libre car ce serait manquer de respect. Bienvenue au pays de la pensée unique.

                • [^]Re: Sortie de GCC 3.4.0

                  Posté par Castor666 () le 22/04/2004 à 13:13. (lien). Évalué à 0.

                  Il y a un différence entre insulte et critique quand même. Il ne faut pas crier au loup dés que quelqu'un ose faire remarquer que grosse bouse est insultant.

                  Ha mais non j'oubliais, les Linuxiens sont tous des intaigristes bornés qui défendent leur système favori coûte que coûte...

              [^]Re: Sortie de GCC 3.4.0

              Posté par Cédric Chevalier (page perso, ) le 21/04/2004 à 20:46. (lien). Évalué à 1.

              Le code généré à partir du C est quand même dans l'ensemble assez correct. J'ai déjà comparé (sur Intel et Sparc) de l'assembleur généré par gcc avec de l'assembleur généré par d'autres compilateurs et gcc fournit un code de bonne qualité quand même.

              Pour g++, je ne sais pas.

              • [^]Re: Sortie de GCC 3.4.0

                Posté par peau chat () le 21/04/2004 à 22:46. (lien). Évalué à 2.

                Même en ce qui concerne le C, le résultat est très variable en ce qui concerne les plateformes (CPU), et GCC est largué dès qu'on commence à parler de calculs en virgules flottantes, jeux d'instructions SIMD (MMX, SSEx, Altivec etc.)

                Fondamentalement, ce n'est pas un problème. On voit mal comment GCC qui est multi-processesseurs pourrait faire mieux qu'un compilateur dédié à un seul modèle de CPU, conçu par le concepteur du CPU, et vendu plusieurs milliers d'euros la licence.

                [^]Re: Sortie de GCC 3.4.0

                Posté par peau chat () le 21/04/2004 à 22:57. (lien). Évalué à 3.

                J'ajoute qu'on peut avoir un code assembleur de très bonne qualité, mais quand même pas optimisé.

                Je m'explique :

                Les microprocesseurs disposent en général de plusieurs pipelines s'exécutant en parallèle. Une première unité du CPU a pour tâche de prendre les instructions à exécuter, et à les répartir entre les différents pipelines.

                Seulement voila, le CPU va prendre N instructions à répartir entre P pipelines, et chaque pipeline est dédié à un seul type d'opération.

                Typiquement 2 pipelines pour exécuter des opérations sur les entiers, 1 pipeline pour exécuter les accès mémoire, 1 pipeline pour les calculs en virgul flottante, 1 pour les saut conditionnels etc.

                Un compilateur dédié à un microprocesseur se débrouillera pour que dans un « paquet » de N instructions consécutives il n'y ait pas plus de 2 opérations sur les entiers pour alimenter un maximum de pipelines en parallèle en un seul cycle d'horloge.

                Évidemment, comme pour chaque modèle de CPU le nombre et le type de pipelines est différent, il est extrêmement difficile d'effectuer ce genre d'optimisation.

                • [^]Re: Sortie de GCC 3.4.0

                  Posté par Cédric Chevalier (page perso, ) le 21/04/2004 à 23:16. (lien). Évalué à 3.

                  Quand je parlais de bonne qualité, c'était notamment par rapport à ces problème de reordonnancement.

                  Et juste pour info (mais je suis sûr que vous le savez déjà tous mais c'est pas grave ça me rode un peu mon clavier) un processeur type P4 (par exemple) réordonne les instructions avant de les éxécuter (out-of-order engine), à un niveau plus fin que le compilateur (niveau instructions internes au core, donc en RISC). Donc je pense que sur les processeurs actuels de PC c'est pas le réordonnancement du compilateur qui va être capital.
                  Sur une architecture type Itanium (VLIW) par contre c'est vital.

                  Voilà, c'était juste pour parler un peu. De toute façon, les différences de performances les plus visibles sont dûes au programmeur, pas au compilateur (et là on peut atteindre bien plus de 60% d'écart).

                  • [^]Re: Sortie de GCC 3.4.0

                    Posté par Mickaël L () le 22/04/2004 à 08:23. (lien). Évalué à 2.

                    > (out-of-order engine)
                    C'est rigolo ça. en traduisant de travers ça fait "machine en panne".

            [^]Re: Sortie de GCC 3.4.0

            Posté par Troy McClure (page perso, ) le 21/04/2004 à 20:59. (lien). Évalué à 3.

            mais il a aussi des avantages, bien sur la portabilité, le fait que ce soit une suite de compilateurs (c,c++,ada,fortran,objC,..). C'est aussi un des rares compilos c++ à fournir des messages d'erreurs complets (i.e. qui permettent après 10 minutes de reflexion et de recherche dans un message de 500 lignes de trouver à quel endroit se situe le probleme), icpc par exemple est bien moins loquace. Pareil pour les warnings, ceux de g++ sont judicieux alors que ceux de icpc (ou cxx, ou le mipspro..) sont soit trop nombreux et inutiles, soit trop peu nombreux. Il est aussi (pour ce que j'en ai vu) moins buggué que icpc. ET il est internationalisé ! (ok ça c'est plus une connerie qu'autre chose)

            Et la prochaine version apportera le tree-SSA, j'aurais bien du mal à expliquer le pourquoi du comment, mais visiblement les dev de gcc ont beaucoup d'espoir dans ce truc qui devrait permettre plein de choses, entre autres de faire des optimisations impossibles à l'heure actuelle

            • [^]Re: Sortie de GCC 3.4.0

              Posté par Croweye () le 22/04/2004 à 04:48. (lien). Évalué à 1.

              un des avantages de gcc, c est qu'il est stable!!!
              On a été obligé d'utiliser a la job icc pour faire bouffer les tonnes d assembleur écrit a la mode MS (portage) et je en compte pas le nombre de fois que le compilateur a planté

              pas qui retourne une erreur, non, icc : segfault!
              apres, amusons-nous a trouver dans le fichier de 4000 lignes c quoi qui aime pas

              (faut par contre avouer que la v8 est bcp stable que la 7)

              • [^]Re: Sortie de GCC 3.4.0

                Posté par Matthieu Moy (page perso, ) le 22/04/2004 à 06:27. (lien). Évalué à 2.

                T'inquiètes, un segfault de g++, j'en ai déjà vu.

                Ce monsieur n'avait pas apprécié qu'on mette un unsigned int à la place d'un int.

                J'ai déjà réussi à faire générer du code incorrect a gcc avec un code parfaitement banal de C pur, de moins de 20 lignes.

                • [^]Re: Sortie de GCC 3.4.0

                  Posté par Ayrton () le 22/04/2004 à 09:19. (lien). Évalué à 0.

                  Si 20 lignes de "code parfaitement banal de C" suffissent pour générer du code incorrect, que GNU/Linux marche alors qu'il faut compiler des dizaines de millions de lignes de code est un véritable exploit.
                  Les utilisateurs de Gentoo apprécirons ta remarque.

                  • [^]Re: Sortie de GCC 3.4.0

                    Posté par Philippe Fremy (page perso, ) le 22/04/2004 à 12:58. (lien). Évalué à 1.

                    Mais oui. Et chaque changement de compilateur est un nouvel exploit pour chaque distrib, surtout quand ces messieurs de gcc s'amusent (si on peut dire) a retirer des trucs qui marchaient avant.

                    Le resultat, c'est que des tas de projet vont passer du temps a corriger les problemes de compilation lie a gcc 3.4 . Voila comment l'exploit se realise. Mais c'est pour la bonne cause, c'est pour le standard.

                    Je ne suis pas alle voir mais je suis sur que sur kde-core-devel, ils discutent deja des nouvelles perfs et du code qu'il faut corriger pour passer sur gcc 3.4 . Ce temps aurait pu etre investi a corriger des bugs mais rien n'est plus important que de respecter le standard du C++.

                    J'espere pour Soustroup qu'il verra avant sa mort un compilateur qui respecte le standard qu'il a ecrit. Sinon, ca serait triste pour lui quand meme.

                    • [^]Re: Sortie de GCC 3.4.0

                      Posté par Ayrton () le 22/04/2004 à 13:40. (lien). Évalué à 1.

                      > Le resultat, c'est que des tas de projet vont passer du temps a corriger les problemes de compilation lie a gcc 3.4

                      Et généralement il vont aussi découvrir des conneries dans leur code.
                      J'était sur http://lwn.net/Articles/79560/(...) et j'ai trouvé ça dans gcc 3.4 :


                      gcc 3.4 supports a "warn_unused_result" attribute on functions; the compiler will complain when code calls a function marked with this attribute and fails to check the return value. The Red Hat kernel applies that attribute to a few functions (copy_from_user(), pci_enable_device(), etc.) to trap places where the proper checks are not made. Various functions which use too much kernel stack space have been fixed up.


                      Une très très grosse partie de FC2 compile avec gcc 3.4 (ce n'est pas le compilateur par défaut). A chaque foi qu'il y a un nouveau compilateur il faut 6 mois pour que l'essentiel soit porté (il reste toujours deux ou trois mal maintenu...).

                      Tu veux quoi ? Plus d'évolution ?
                      GNU/Linux a la chance d'être orienté source. Ça permet d'évoluer vite.
                      Profitons-en.
                      Si on était empétré dans les problèmes de compatibilité comme les OS proprio, GNU/Linux serait probablement un échec.

                      De plus tu peux toujours installer plusieurs version de gcc en parallèle. Donc je ne comprend pas ta remarque.

                    [^]Re: Sortie de GCC 3.4.0

                    Posté par Matthieu Moy (page perso, ) le 22/04/2004 à 13:56. (lien). Évalué à 2.

                    Tu veux aller voir le rapport de bug ?

                    http://gcc.gnu.org/ml/gcc-bugs/2001-04/msg00449.html(...)

                    J'arrive plus à décoder l'attachement en base64, mais il y avait 17 lignes si mes souvenirs sont bons. Le truc qui n'avait pas plu à gcc, c'est la présence d'un "unsigned char" dans une boucle for ou un truc du genre.

                    J'ai aussi déjà vu GCC partir en vrille (100% de CPU, 500Mo de RAM) sur un programme C++ de moins de 20 lignes. Mais là, c'est de la triche, il y avait des templates.

                    Maintenant, devines quoi : Quand un programmeur tombe sur un cas comme ça, devines ce qu'il fait ... Il change son code, et il met un truc qui compile. Du coup, oh, miracle, à la fin, il a un programme qui compile. C'est dingue, non ?

                    • [^]Re: Sortie de GCC 3.4.0

                      Posté par renoo () le 23/04/2004 à 16:22. (lien). Évalué à 2.

                      C'est pas lié à la machine AIX on bull ? Sinon le binaire faux c'est quand meme terrible.

                      Pour les templates c'est normal, pour calculer la factorielle à la compil combien faut-il de temps et d'espace mémoire ? Mais c'est quand meme une force terrible de pouvoir faire des trucs aussi puissant à la compilation.

                      template<int N> inline Facto() {return N*Facto<N-1>();}
                      template<> inline int Facto<0>() {return 1;}

                      • [^]Re: Sortie de GCC 3.4.0

                        Posté par Matthieu Moy (page perso, ) le 26/04/2004 à 12:29. (lien). Évalué à 1.

                        > C'est pas lié à la machine AIX on bull ?

                        Si mes souvenirs sont bons, je n'avais pas réussi à reproduire le bug sur Linux i386, donc, c'était lié à l'architecture.

                        > Sinon le binaire faux c'est quand meme terrible.

                        Tu l'as dit, surtout quand il faut trouver l'endroit qui fait planter GCC au milieu de 3000 lignes de code :-(

                        > Pour les templates c'est normal,

                        Je n'ai pas le programme sous la main, mais je t'assure que dans ce cas particulier, ce n'était pas du tout normal ;-) (En fait, GCC aurait du sortir une erreur immédiatement)

              [^]Re: Sortie de GCC 3.4.0

              Posté par patrick_g (page perso, ) le 22/04/2004 à 13:11. (lien). Évalué à 2.

              Et la prochaine version apportera le tree-SSA, j'aurais bien du mal à expliquer le pourquoi du comment, mais visiblement les dev de gcc ont beaucoup d'espoir dans ce truc qui devrait permettre plein de choses, entre autres de faire des optimisations impossibles à l'heure actuelle


              j'avais posté une news y'a qq mois qui évoquait le futur de GCC (avec le tree-SSA) :

              http://linuxfr.org/2003/10/29/14428.html(...)

            [^]Re: Sortie de GCC 3.4.0

            Posté par Croconux () le 22/04/2004 à 14:43. (lien). Évalué à 1.

            Quelqu un sait il pourquoi? Pour la rapidite de compilation c est peut etre le respect de la norme ANSI, mais pour l efficacite du code?

            J'avais lu il y a quelques temps que la structure sur laquelle gcc travaille en interne (le RTL) était de trop bas niveau pour permettre certaines optimisations. D'ailleurs dans la prochaine grosse version (4.0?) cette structure sera remplacée par une nouvelle forme (Gimple).

          [^]Re: Sortie de GCC 3.4.0

          Posté par Ayrton () le 22/04/2004 à 09:14. (lien). Évalué à 1.

          > genere un code 15% plus performant en moyenne

          Tu veux dire que si je compile mon GNU avec icpc mon système va tourner 15 % vite en moyenne ?
          Fichtre !

          J'y crois pas.

          • [^]Re: Sortie de GCC 3.4.0

            Posté par Troy McClure (page perso, ) le 22/04/2004 à 10:08. (lien). Évalué à 0.

            c'est pas ce que j'ai dit !

            [^]Re: Sortie de GCC 3.4.0

            Posté par MiniMoi () le 22/04/2004 à 10:08. (lien). Évalué à 1.

            Ca me parait aussi tres bizarre... Dans ce cas pourquoi Linux a-t-il de bonnes performances si il est handicape par un compilateur C tout juste correct (gcc) et par un compilateur C++ tout juste correct aussi (g++)?

            • [^]Re: Sortie de GCC 3.4.0

              Posté par Troy McClure (page perso, ) le 22/04/2004 à 10:33. (lien). Évalué à 4.

              parce qu'il ne fait pas ou peu de taches cpu-intensives ! ce genre de difference n'est sensible que sur des softs qui utilisent beaucoup de temps processeur, par ex. oggenc, mencoder, gcc, etc.., pas sur ceux qui passent 99% de leur temps à attendre l'arrivée d'un evenement.

              et gcc est plus que correct, mais il n'est pas le meilleur à tous points de vue.

              • [+] [^]Re: Sortie de GCC 3.4.0

                Posté par Ayrton () le 22/04/2004 à 11:37. (lien). Évalué à -1.

                > gcc est plus que correct, mais il n'est pas le meilleur à tous points de vue.

                C'est peut-être pas le meilleur pour les performances mais globalement c'est le meilleur (avis personnel)
                Puis ces trucs d'optimisations c'est "fatiguant". On promet le pérou et quand on voit la différence entre une Gentoo et une autre distribution, on constate que le pérou est encore très loin... Et aussi lorsque le cpu est utilisé intensivement (sauf pour des cas particuliers qui ne consernent que 0.01 % des utilisateurs).

                Il y a plein de cluster Linux vendu avec gcc. Ce n'est pas un hazard.
                Si icc écrasait gcc en performance, Intel aurait fait un bench avec une distribution complètement compilée avec icc pour montrer comme icc rox à mort. Peut-être qu'Intel aurait aussi forké une distribution avec la seule particularité d'utiliser icc.

                > beaucoup de temps processeur, par ex. oggenc, mencoder

                J'aimerais bien voir un bench de mencoder, qui est optimisé aux petits oignons, compilé avec gcc et icc.
                Déjà il faut que ça compile avec icc, ce qui n'est pas sûre.
                Puis l'écart en faveur d'icc (si cet écart existe) sera très faible. Pas de quoi lacher un amour de logiciel libre comme gcc.

                • [^]Re: Sortie de GCC 3.4.0

                  Posté par Moby-Dik () le 22/04/2004 à 12:52. (lien). Évalué à 0.


                  C'est peut-être pas le meilleur pour les performances mais globalement c'est le meilleur (avis personnel)


                  Moi j'ai mangé de la banane flambée ce midi.

                  On promet le pérou et quand on voit la différence entre une Gentoo et une autre distribution, on constate que le pérou est encore très loin...

                  Ouais, alors qu'on pourrait se contenter de la Belgique.

                  Il y a plein de cluster Linux vendu avec gcc. Ce n'est pas un hazard.

                  Oui, Linux et gcc sont gratuits.

                  Si icc écrasait gcc en performance, Intel aurait fait un bench avec une distribution complètement compilée avec icc pour montrer comme icc rox à mort.

                  Intel est un marchand de processeurs, le marché du soft ne l'intéresse pas. Ecrire un compilateur ne lui sert qu'à montrer ses CPUs sous un meilleur jour (notamment tests SPEC CPU).

                  • [^]Re: Sortie de GCC 3.4.0

                    Posté par Ayrton () le 22/04/2004 à 13:41. (lien). Évalué à 0.

                    > Ecrire un compilateur ne lui sert qu'à montrer ses CPUs sous un meilleur jour (notamment tests SPEC CPU).

                    Merci d'aller dans mon sens.

                  [^]Re: Sortie de GCC 3.4.0

                  Posté par Troy McClure (page perso, ) le 22/04/2004 à 14:22. (lien). Évalué à 1.

                  > J'aimerais bien voir un bench de mencoder, qui est optimisé aux petits oignons, compilé avec gcc et icc.
                  > Déjà il faut que ça compile avec icc, ce qui n'est pas sûre.
                  > Puis l'écart en faveur d'icc (si cet écart existe) sera très faible. Pas de quoi lacher un amour de logiciel libre comme gcc.

                  Pour mencoder il n'y aura sans doute aucune difference vu que le truc est blindé d'optimisations en assembleur etc.
                  Prends n'importe quel code de calcul un peu bourrin, compile-le avec icc et gcc, et les 15% tu les auras. En tout cas moi je les ai constaté à chaque fois. Maintenant 15% c'est pas grand chose, personnellement ça m'importe beaucoup moins que la difference de vitesse de compilation de g++ par rapport icc.

                  • [^]Re: Sortie de GCC 3.4.0

                    Posté par Christophe Fergeau () le 22/04/2004 à 15:34. (lien). Évalué à 1.

                    Recompile g++ avec icc, tu gagneras déjà 15% de perfs, donc de temps de compil ;)

                    • [^]Re: Sortie de GCC 3.4.0

                      Posté par Ayrton () le 22/04/2004 à 16:06. (lien). Évalué à 1.

                      Difficile. gcc boostrap.
                      Ce qui va arriver, c'est que icc va compiler gcc-stage1 puis gcc-stage1 va compiler tout gcc. Puis les 15 % de mieux, tu peux rêver.

                      • [^]Re: Sortie de GCC 3.4.0

                        Posté par Matthieu Moy (page perso, ) le 22/04/2004 à 17:07. (lien). Évalué à 1.

                        Oui, enfin, tu peux aussi récupérer le binaire du gcc-stage1.

                        Les Makefiles ne sont pas trop fait pour, mais mais le compilateur que tu cherche (gcc compilé avec icc) est bien celui qui est utilisé pour compiler stage2.

                        Par contre, il y a de fortes chances pour que ca ne compile pas du tout (cf. p tramo ci-dessous)

                      [^]Re: Sortie de GCC 3.4.0

                      Posté par Troy McClure (page perso, ) le 22/04/2004 à 16:19. (lien). Évalué à 1.

                      aarg je viens d'essayer et ... la compilation foire au bout de quelques fichiers :'( dommage j'aimais bien l'idée

    [^]Re: Sortie de GCC 3.4.0

    Posté par Nicolas ANTONIAZZI (page perso, ) le 21/04/2004 à 13:30. (lien). Évalué à 4.

    Pour le moment, que le C++ compile plus vite c'est vraiment apprecié... Les programmes en C++ sont vraiment lent à compiler comparé à d'autres compilateur proprio.

    J'ai bon espoir que cette release apporte une solution.

    [^]Re: Sortie de GCC 3.4.0

    Posté par Cédric Chevalier (page perso, ) le 21/04/2004 à 13:32. (lien). Évalué à 2.

    Par contre il ya peut-être bien des améliorations dans l'analyse du code qui permettront de gagner un peu de performances à l'éxécution.

    • [^]Re: Sortie de GCC 3.4.0

      Posté par Vincent Richard (page perso, ) le 21/04/2004 à 14:16. (lien). Évalué à 1.

      En tout cas, il y a eu des optimisations dans la STL, et c'est une bonne chose à mon avis. Elle n'est encore pas parfaite (pas qu'en terme d'optimisations), mais elle ne fait que s'améliorer.

      Voir la rubrique "Runtime Library (libstdc++) -> Optimization work" des changements.

      En tout cas, je tiens à adresser mon respect aux développeurs de GCC, car faire un compilateur c'est quand même un sacré boulot...

    [^]Re: Sortie de GCC 3.4.0

    Posté par Wajsberg Julien () le 22/04/2004 à 10:54. (lien). Évalué à 1.

    Oui, c'était le but de GCC 3.4 il me semble d'ailleurs.

    Les problèmes évoqués dans d'autres posts (lenteurs de la compilation, du code généré) proviennent aussi du fait que GCC ne peut pas utiliser certains algorithmes protégés par brevet, par ... IBM notamment :/