OVH Cloud OVH Cloud

[gentoo-user-fr] Optimisation

16 réponses
Avatar
Michel Paquet
Bonjours à tous

J'ai réssamment fait l'essais de Linux Debian Sarge (version 3.1
testing pour ceux qui suivent les actualité de cette distribution) en
tant que station de travaille. J'utilise déja Woody (version 3.0) dans
tout les serveurs que je monte, mais sans fonction graphique.

J'ai donc monté ma Debian 3.1 à l'identique de ma Gentoo (même
programmes, même configuration, etc) et j'ai remarqué quelques choses de
très désagréable pour Gentoo. Debian roule facilement 5 fois plus rapide
sur le même ordinateur que Gentoo. J'ai fait le teste sur la machine
suivante:

Pentium 3 @ 933Mhz
2 x SDRAM 256Mo PC133
Carte-mère ASUS CUSL2-C (bios 1014 Beta 001)
GeForce 4 MX440 AGP 8X (tourne à 4X)
SoundBlaster Audigy2
Disque dur 20Go Western-Digital, 2Mo cache (monté en Debian, Kernel
2.4.27 - Patch Debian)
Disque dur 200Go Western-Digital, 8Mo cache (monté en Gentoo, Kernel
2.4.28-r7 - Patch Gentoo)
Lecteur cd-rom + cd-rw LG ainsi qu'un floppy standard

***** NOTE: Les disque dur sont installé 1 à 1 en single et non en mode
dual boot master/slave. J'entend par là que lorsque Gentoo est branché,
Debian ne l'est pas et vice-versa *****

Ce qui m'apporte à me posé ces questions:

1 - À quoi servent les optimisations si elle ne sont pas pour affecté la
rapidité et les performances du système?
2 - Pourquoi une distribution tel que Debian offre de meilleurs
performance avec des paquetages pré-compilé?
3 - Comment puis-je rendre Gentoo aussi performante que Debian?
4 - Cela vaux-t-il vraiment la peine de se tappé 4 heurs de compilation
pour s'appercevoir qu'en 2 minute sur Debian, le même programmes est
installé et tourne 2 fois plus rapide?
5 - Y a-t-il un moyen de connaitres les optimisations de compilation
(peut-être les USE utilisé) de Debian et les transposé dans Gentoo?


Michel Paquet
Québec, CA

--
gentoo-user-fr@gentoo.org mailing list

6 réponses

1 2
Avatar
Yoann Pannier
Jean-Baptiste wrote:
Salut,

J'ai le même problème : sous Ubuntu par exemple, firefox mets plus d'une
seconde de moins pour se lancer. J'ai essayé avec -Os, -O2 et -O3,
firefox sous Ubuntu est toujours plus rapide !



L'eclass mozconfig filtre les -Ox

Je n'ai pourtant pas de services supplémentaires lancés, il y a
d'ailleurs plus de mémoire disponible car j'utilise fluxbox sous Gentoo
et non pas Gnome comme sous Ubuntu.



Au hazard : Firefox et Gnome utilisent GTK, fluxbox non. Donc
Firefox/Fluxbox est forcement plus long à démarrer que Firefox/Gnome, et
ce, au moins, parce que les librairies GTK doivent être lues et chargées
dans le premier cas, alors qu'elles le sont déjà dans le second.

Ca me semble logique.

Est-ce que ça pourrait alors venir du système de fichier ? Reiserfs 3
sous Gentoo contre ext3 sous Ubuntu. Ou alors d'un kernel mal configuré ?



Evidement, il peut y avoir d'autres causes.

--
Yoann Pannier

--
mailing list
Avatar
David Robert
Le lundi 28 février 2005 à 19:17 +0100, Jean-Baptiste a écrit :
Salut,

J'ai le même problème : sous Ubuntu par exemple, firefox mets plus d'une
seconde de moins pour se lancer.


ouahaou !!!! la claque :-)

J'ai essayé avec -Os, -O2 et -O3,
firefox sous Ubuntu est toujours plus rapide !


avec quel otuil mesurez vous cela ?

Je n'ai pourtant pas de services supplémentaires lancés, il y a
d'ailleurs plus de mémoire disponible car j'utilise fluxbox sous Gentoo
et non pas Gnome comme sous Ubuntu.


déjà tu ne lances pas dans le même environnement. Imagine que Gnome ait
déjà chargé des briques logicielles nécessaires à Firefox que Fluxbox
lui va s'empresser de le faire (à vérifier).


Est-ce que ça pourrait alors venir du système de fichier ? Reiserfs 3
sous Gentoo contre ext3 sous Ubuntu. Ou alors d'un kernel mal configuré ?


voilà encore une autre différence !!!!!
un conseil tout de même. reste sous reiserfs même si tu "perds" une
seconde. Car tu gagneras sur d'autres plans.

Mais lorsque que vous faites des comparaisons, faites le rigoureusement
et sérieusement. ne changer qu'une chose à la fois !!!!!

J'aimerai beaucoup que cela s'arrange car attentre 10ans (866Mhz) pour
compiler une appli et constater ensuite que c'est plus rapide sur une
distrib qui donne des binaires, ça fait mal.
Il ne resterai à Gentoo
plus que sa flexibilité et sa mise à jour plus fréquente des packages
comme avantages par rapport à Debian par exemple.



Cdlt,
--
David Robert



--
mailing list
Avatar
Jean-François Maeyhieux
--=-y4g7PgCyrb0h4GgjfraR
Content-Type: multipart/alternative; boundary="=-efRubAqm4MDWmm/XseqX"


--=-efRubAqm4MDWmm/XseqX
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: quoted-printable

On Mon, 2005-02-28 at 20:11 +0100, Yoann Pannier wrote:

Jean-Baptiste wrote:
> Salut,
>
> J'ai le même problème : sous Ubuntu par exemple, firefox mets plus d'une
> seconde de moins pour se lancer. J'ai essayé avec -Os, -O2 et -O3,
> firefox sous Ubuntu est toujours plus rapide !

L'eclass mozconfig filtre les -Ox

> Je n'ai pourtant pas de services supplémentaires lancés, il y a
> d'ailleurs plus de mémoire disponible car j'utilise fluxbox sous Gent oo
> et non pas Gnome comme sous Ubuntu.

Au hazard : Firefox et Gnome utilisent GTK, fluxbox non. Donc
Firefox/Fluxbox est forcement plus long à démarrer que Firefox/Gnome, et
ce, au moins, parce que les librairies GTK doivent être lues et charg ées
dans le premier cas, alors qu'elles le sont déjà dans le second.

Ca me semble logique.

> Est-ce que ça pourrait alors venir du système de fichier ? Reiserfs 3
> sous Gentoo contre ext3 sous Ubuntu. Ou alors d'un kernel mal configur é ?

Evidement, il peut y avoir d'autres causes.




De même que David, je pense que reiserfs est plus avantageux que ext3.
et reiser4 et experimental mais utilisable et la questions File System,
on sent vraiment la différence, surtout au boot !

Par contre pour le coup des librairies à charger au démarrage des
applis, il me semble que Ubuntu utilise un chargement dynamique des
librairies, c'est à dire que les librairies sont chargés à la demande et
non dès le départ au chargement de l'API, ce qui fais une sacré
différence au démarrage des applications. Cela est un choix, temps plus
long au démarrage ou temps plus long de réaction plus tard à la requ ête
d'une fonction de la librairie.
Pour obtenir la même chose sous gentoo, il faut rajouter la ligne
suivante à son make.conf:

LDFLAGS="-Wl,-O1"

A ma connaissance, tout se compile sans problèmes avec. Le seul problèm e
que j'ai pu rencontrer en compilant entièrement un système avec, c'est
dans le cas où /usr est sur une partition séparée auquel cas reiserfs ck
pour reiser4 ne trouve pas la librairie libgpm (que quelqu'un m'explique
le besoin de cette librairie !!!). L'astuce consiste à copier la
librairie dans /lib et créer un lien dans /usr/lib sur cette copie
(lorsque /usr est non monté, ceci est important, sinon cela sert à
rien). Voilà. Pour être rapide on peut vérifier qu'il n'y aura pas de
problème en faisant:
ldd /bin/* | grep "usr"; ldd /sbin/* | grep "usr"
Si la commande returne quelquechose, alors il y a une dépendance qui ne
sera pas résolue au boot car /usr ne sera pas monté et un binaire
pourrait ne pas fonctionner. Si c'est un *fsck, "/" ne se monte pas au
démarrage.

En espérant que cela vous sera utile.

TuTTle


--
--------------------------------------------------------------------------- -----------
PGP Public Key = http://pgpkeys.mit.edu:11371/pks/lookup?op=get&search =0x63DB4770
Key ID = 63DB4770 Tuttle (JFM)
--------------------------------------------------------------------------- -----------

--=-efRubAqm4MDWmm/XseqX
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 TRANSITIONAL//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=UTF-8">
<META NAME="GENERATOR" CONTENT="GtkHTML/3.2.3">
</HEAD>
<BODY>
On Mon, 2005-02-28 at 20:11 +0100, Yoann Pannier wrote:
<BLOCKQUOTE TYPE=CITE>
<PRE>
<FONT COLOR="#000000">Jean-Baptiste wrote:</FONT>
<FONT COLOR="#000000">&gt; Salut,</FONT>
<FONT COLOR="#000000">&gt; </FONT>
<FONT COLOR="#000000">&gt; J'ai le m&#234;me probl&#232;me : sous Ubuntu par exemple, firefox mets plus d'une</FONT>
<FONT COLOR="#000000">&gt; seconde de moins pour se lancer. J'ai essay&#2 33; avec -Os, -O2 et -O3,</FONT>
<FONT COLOR="#000000">&gt; firefox sous Ubuntu est toujours plus rapide ! </FONT>

<FONT COLOR="#000000">L'eclass mozconfig filtre les -Ox</FONT>

<FONT COLOR="#000000">&gt; Je n'ai pourtant pas de services suppl&#233;me ntaires lanc&#233;s, il y a</FONT>
<FONT COLOR="#000000">&gt; d'ailleurs plus de m&#233;moire disponible car j'utilise fluxbox sous Gentoo</FONT>
<FONT COLOR="#000000">&gt; et non pas Gnome comme sous Ubuntu.</FONT>

<FONT COLOR="#000000">Au hazard : Firefox et Gnome utilisent GTK, fluxbox non. Donc</FONT>
<FONT COLOR="#000000">Firefox/Fluxbox est forcement plus long &#224; d&#2 33;marrer que Firefox/Gnome, et</FONT>
<FONT COLOR="#000000">ce, au moins, parce que les librairies GTK doivent &#234;tre lues et charg&#233;es</FONT>
<FONT COLOR="#000000">dans le premier cas, alors qu'elles le sont d&#233; j&#224; dans le second.</FONT>

<FONT COLOR="#000000">Ca me semble logique.</FONT>

<FONT COLOR="#000000">&gt; Est-ce que &#231;a pourrait alors venir du sys t&#232;me de fichier ? Reiserfs 3</FONT>
<FONT COLOR="#000000">&gt; sous Gentoo contre ext3 sous Ubuntu. Ou alors d'un kernel mal configur&#233; ?</FONT>

<FONT COLOR="#000000">Evidement, il peut y avoir d'autres causes.</FONT>
</PRE>
</BLOCKQUOTE>
<BR>
De m&#234;me que David, je pense que reiserfs est plus avantageux que ext3. et reiser4 et experimental mais utilisable et la questions File System, on sent vraiment la diff&#233;rence, surtout au boot !<BR>
<BR>
Par contre pour le coup des librairies &#224; charger au d&#233;marrage des applis, il me semble que Ubuntu utilise un chargement dynamique des librai ries, c'est &#224; dire que les librairies sont charg&#233;s &#224; la dema nde et non d&#232;s le d&#233;part au chargement de l'API, ce qui fais une sacr&#233; diff&#233;rence au d&#233;marrage des applications. Cela est un choix, temps plus long au d&#233;marrage ou temps plus long de r&#233;actio n plus tard &#224; la requ&#234;te d'une fonction de la librairie.<BR>
Pour obtenir la m&#234;me chose sous gentoo, il faut rajouter la ligne suiv ante &#224; son make.conf:<BR>
<BR>
LDFLAGS=&quot;-Wl,-O1&quot;<BR>
<BR>
A ma connaissance, tout se compile sans probl&#232;mes avec. Le seul probl& #232;me que j'ai pu rencontrer en compilant enti&#232;rement un syst&#232;m e avec, c'est dans le cas o&#249; /usr est sur une partition s&#233;par&#23 3;e auquel cas reiserfsck pour reiser4 ne trouve pas la librairie libgpm (q ue quelqu'un m'explique le besoin de cette librairie !!!). L'astuce consist e &#224; copier la librairie dans /lib et cr&#233;er un lien dans /usr/lib sur cette copie (lorsque /usr est non mont&#233;, ceci est important, sinon cela sert &#224; rien). Voil&#224;. Pour &#234;tre rapide on peut v&#233;r ifier qu'il n'y aura pas de probl&#232;me en faisant:<BR>
ldd /bin/* | grep &quot;usr&quot;; ldd /sbin/*&nbsp; | grep &quot;usr&quot; <BR>
Si la commande returne quelquechose, alors il y a une d&#233;pendance qui n e sera pas r&#233;solue au boot car /usr ne sera pas mont&#233; et un binai re pourrait ne pas fonctionner. Si c'est un *fsck, &quot;/&quot; ne se mont e pas au d&#233;marrage.<BR>
<BR>
En esp&#233;rant que cela vous sera utile.<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp; TuTTle<BR>
<BR>
<BR>
<TABLE CELLSPACING="0" CELLPADDING="0" WIDTH="100%">
<TR>
<TD>
<PRE>
--
--------------------------------------------------------------------------- -----------
PGP Public Key = <A HREF="http://pgpkeys.mit.edu:11371/pks/lookup?op= get&search=0x63DB4770">http://pgpkeys.mit.edu:11371/pks/lookup?op=get&a mp;search=0x63DB4770</A>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Key ID = 63DB4770&nbsp;&nbsp;& nbsp;&nbsp;&nbsp;&nbsp; Tuttle (JFM) &lt;<A HREF="mailto:">b4 </A>&gt;
--------------------------------------------------------------------------- -----------
</PRE>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

--=-efRubAqm4MDWmm/XseqX--

--=-y4g7PgCyrb0h4GgjfraR
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)

iD8DBQBCI8/jHVRy9WPbR3ARAsLnAKC6uSQHl8127I75b4MZeo9wmHQtLACfYYRq
bzfsQvQwLEkeem2poAdY4ws =ruDh
-----END PGP SIGNATURE-----

--=-y4g7PgCyrb0h4GgjfraR--
Avatar
NiCoS
Le Monday 28 February 2005 01:40, Yoann Pannier a écrit :

> Je suis pourtant en prelink, et en -03, mais je ne regrète tout de m ême
> pas ma gentoo ou je peut vraiment faire tout ce que je veux sans avoir
> de problème de dépendance.

O3 => binaires plus gros => chargements plus long.



Hmm est-ce à dire qu'il faudrait compiler en -O2 par ex ou autre ? Quel est
l'avantage/l'inconvénient par rapport à -O3 ?

Pourtant le -O3 est une option par défaut si je ne m'abuse dans le make.c onf
donc pourquoi ce choix s'il est "discutable" au niveau optimisation ?

Nicolas

--
Nicolas -
http://www.destination-linux.org/
http://www.entre-aide.org/

--
mailing list
Avatar
Christophe Garault
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

NiCoS a écrit :

| Pourtant le -O3 est une option par défaut si je ne m'abuse dans le
| make.conf donc pourquoi ce choix s'il est "discutable" au niveau
| optimisation ?

L'optimisation d'une distrib est une affaire longue et compliquée. Je
ne suis absolument pas surpris de savoir que les devs de Debian font
du bon boulot. A mon avis une bonne optimisation sous Gentoo (mais ça
ne m'interesse pas, je préfère des applis rock-solid) doit se faire au
cas par cas pour chaque paquet.
Juste pour le fun, voir la page 7 du document
http://www.gentoo.org/proj/en/pr/docs/presentations/features-of-portage.sxi
pour comprendre que c'est loin d'être une affaire simple.
Sinon de mémoire je ne crois pas qu'il y ait tant de différences entre
O2 er O3. Mais la page de doc de gcc est une mine d'infos pour ceux
qui se sentent le courage et la compétence (avec du temps aussi
probablement).

- --
Christophe Garault
Take your marks:
Gen too three: Emerge!
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (MingW32)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCJMMcJ5Nh3YMYAQsRAhhTAJsEArmZ5ScOolhRoyd9QGjhKRNnGgCfZV0G
plGJxUut7AxCkUVqrBfs3yI =h/9F
-----END PGP SIGNATURE-----


--
mailing list
Avatar
Yoann Pannier
NiCoS wrote:
O3 => binaires plus gros => chargements plus long.



Hmm est-ce à dire qu'il faudrait compiler en -O2 par ex ou autre ? Quel est
l'avantage/l'inconvénient par rapport à -O3 ?



Ca dépend ;)

Je suis loin d'être un expert en la matière, mais disons qu'un binaire
plus gros, ça prend plus de place sur le disque (temps de chargements)
en mémoire (peut être critique si swap), en cache processeurs (moins de
programmes y tiennent et donc plus d'IO, éventuellement, vers la RAM
plus lente).

Un programme compilé en O2, et à fortiori en Os, sera moins gros et
n'aura pas les inconvénients ci-dessus (ou bien il les aura mais moins).
Par contre il exécutera plus d'instructions (branchement, sauts,
boucles, enfin ce genre de truc de machine)

Au final, O3 peut effectivment faire un programme plus rapide, mais pas
forcement, ça peut en faire un programme plus lent.

Tout ça dépend du soft, de ce qu'il fait, de ton processeur, de la
taille de ses caches, de leur vitesses, des autres softs qui tournent en
même temps... Et il faut aussi prendre en compte l'utilisation que tu en
fait (c'est un daemon ? une GUI ? qq chose que tu lances souvent, que tu
laisses en mémoire, qui calcules plein de trucs ou qui dit juste
'bonjour, toto est online'...). Inutile de copier sur le voisin donc...

Bref, ça dépend. Et c'est très compliqué. Et donc il ne faut pas
s'étonner d'avoir une différence (1 seconde... j'en reviens encore pas!)
entre une distribution installée en binaire (pré-optimisée) et une
gentoo (avec des CFLAGS au petit bohneur la chance), voir entre 2 gentoo.

Pourtant le -O3 est une option par défaut si je ne m'abuse dans le make.conf
donc pourquoi ce choix s'il est "discutable" au niveau optimisation ?



Aucune idée du défaut (pas eu l'occasion de le voir/regarder depuis trop
longtemps).

Mais la réponse est, à mon avis, que *tout* choix par défaut aurait été
discutable. Et quelle que soit cette valeur, elle n'est que *par défaut*.

Ma conclusion personnelle, à ma situation personnelle est :
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer"

Voili Voilou, si j'ai dit trop de bêtises, oubliez les !

--
Yoann Pannier

--
mailing list
1 2