URL: https://linuxfr.org/users/tiwaz/journaux/linux-gentoo-et-gcc-dans-un-bateau Title: Linux, Gentoo, et gcc dans un bateau... Authors: Tiwaz Date: 2009年11月05日T09:51:43+01:00 Tags: ubuntu Score: 20 Tous les développeurs de la terre (dans l'espace, c'est parfois différent, surtout dans l'espace intersidéral, mais ce n'est le sujet de ce journal), ou presque, aime les performances. Or, gcc permet beaucoup, même si il est parfois difficile de choisir quel type d'optimisation utiliser. Et c'est ainsi que le site [[http://www.linux-mag.com/id/7574/1/](http://www.linux-mag.com/id/7574/1/)] nous propose un beau comparatif de systèmes compilés utilisant des degrés d'optimisations divers pour identifier leurs performances. Par forcement représentatif de la réalité, ce test grandeur nature nous permet de voir quelques petites choses assez intéressantes. Ainsi, nous avons 3 systèmes gentoo tournant avec les mêmes logiciels, ainsi que sur le même matériel, mais compilé avec les options -Os (O2 + size optimisation), -O2 et -O3. A titre de comparaison pas forcement pertinent, nous avons un système Ubuntu 9.04 avec un kernel plus vieux (2.28 vs 2.30), un java différent, et X.org différent, et des drivers nvidia différents, mais utilisant gcc 4.3.3 comme gentoo. Si certains résultats sont très proche, quelque soit le système ou l'optimisation, il est intéressant de noter que certains écarts sont véritablement important et significatif. Les résultats proche semblent (je n'en sait rien) être plus limité au niveau disque dur (les I/O sont plus importantes) que calculs. mencoder par exemple, est presque deux fois plus rapide avec les optimisations core2 et le nouveau kernel alors que les optimisations de gcc ne lui apporte pas grand chose. Ce qui, de mon coté, m'a le plus étonné, c'est que -O3 est souvent plus lent que -O2, et que ce même -O2, même si c'est le plus efficace, est parfois battu par un -Os, alors que ce dernier n'utilise pas toutes les optimisations (C'est un -O2 sans -falign-functions -falign-jumps -falign-loops -falign-labels -freorder-blocks -freorder-blocks-and-partition -fprefetch-loop-arrays -ftree-vect-loop-version). Donc dans ce cas, est-ce le cache qui joue un rôle important? (Les différences sont en effet assez importante, lorsque -Os est efficace. D'ailleurs, dans ce cas, les optimisations en -O3 sont souvent les pire. Bonne lecture à tous.