• [^] # Re: C'est drôle

    Posté par . En réponse au journal Vous n'êtes pas sous Gentoo : gardez la tête haute. Évalué à 5.

    > Et bien franchement, j ai énormément gagné en vitesse.

    L'optimisation est le genre de "truc" qui a été discuté des zillions de fois pour Fedora qui est compilé pour utiliser uniquement le jeux d'instruction du i386.
    La réponse est invariablement la même :
    - Si quelqu'un prouve qu'il y a un gain _global_ en performance pour la distribution, alors on regarde pour le fait. Mais hors de question d'ajouter une incompatibilité qui n'apporte rien (déjà compilé avec -mtune=pentium4, mais limité au instruction i386).

    Le i686 apporte peut d'instructions supplémentaires. Et pour mmx, etc il est possible d'utiliser une fonctionnalité du loader qui va récupérer une librairie spécialisé mmx dans /usr/libmmx par exemple.

    Actuellement il n'y a que 3 paquets compilés pour i386 et i686 (Le choix du paquet est fait à l'installation) car c'est prouvé apporter en performance :
    - kernel
    - glibc
    - openssl

    Je peux te garantir qu'il y en a plus d'un qui a recompilé tout Fedora avec des flags aux petits oignons. La conclusion est toujours la même :
    => gain _mesurable_ = 0. Par contre les gens ont la _sensation_ que c'est pour rapide (c'est psychologique).

    La dernière foi que cette histoire était revenu avec quelque chose de nouveau et/ou intéressant, c'était pour le flag -Os. Ce flags rend le code plus petit. Pour le noyau il est déjà utilisé car il soulage le cache et permet un gain _global_ en performance. La question de l'application de ce flag, reste ouverte.


    Tout ça n'est pas un argumentaire à la petite semaine.
    Pour Red Hat Enterprise (la distribution pour entreprise), Red Hat passe eux même la distribution aux benchmarks pour faire pété des records et faire de la pub. Ils se limitent toujours aux jeux d'instructions i386. Pourtant Red Hat ne manque pas de spécialistes gcc (C'est eux qui ont le plus de développeurs gcc) qui connaissent les flags gcc par coeur et si proposer deux distributions, une limité à i386 et une qui utilise les instruction i686 permettait un gain, Red Hat le ferait.

    De deux choses l'une :
    - soit chez Fedora/Red Hat/Mandrake/SuSE/Debian (tout le monde sauf Gentoo) ils sont cons
    - soit Gentoo utilise des flags par défaut particuliairement mauvais ce qui justifie de tout recompiler avec d'autres flags

    Quand on y pense, Debian a 11 architecture déjà ! Debian pourrait parfaitement ajouter l'achitecture i686 si ça a un sens.

    Voilà avec quoi est compilé Fedora/Red Hat :
    -O2 -march=i386 -mtune=pentium4

    Explication :
    -O2 : flag d'optimisation. La majorité des optimisations sont là.

    -march=i386 : jeux d'instruction limité au i386.

    -mtune=pentium4 : optimiser pour pentium 4 (tout en ce limitant au jeux d'instruction du i386).

    En fait, ce n'est pas tout à fait vrai, car la dernière Fedora require un Pentium au minimum. En-dessous du Pentium, ça marche encore mais nptl déconne (problème avec db4 par exemple).