userlocal propose un article plutôt intéressant sur la compilation de KDE 2.2.2 . On y parle entre autres de objprelink, qui semble vraiment efficace au vu des temps annoncés dans l'article: sur la machine de l'auteur, le temps de démarrage de KDE passe de 30-40 secondes à 10-15 , et celui de konqueror passe de 6-10 secondes à 2-4 !
Aller plus loin
# From Scratch roulez
Posté par Jean-Pierre Schwickerath (site web personnel) . Évalué à 10.
Linux From Scratch roulez.... ;-)
[^] # Re: From Scratch roulez
Posté par analogue o/ (site web personnel) . Évalué à 1.
[^] # Re: From Scratch roulez
Posté par gle . Évalué à 10.
L'idéal serait un hybride LFS et Debian : Une fois le système de base réalisé avec LFS, on greffe un gestionnaire de packages Debian et on installe tout ce dont on a besoin en faisant une recompilation à partir des sources (Pour ce qui est open-source).
[^] # Re: From Scratch roulez
Posté par Anonyme . Évalué à 10.
[^] # Re: From Scratch roulez
Posté par bmc . Évalué à 10.
ALFS (Automated LFS).
http://alfs.linuxfromscratch.org/(...)
(ou alors j'ai pas bien compris)
[^] # Re: From Scratch roulez
Posté par Olivier M. . Évalué à 3.
mpkg le fait il me semble (ou alors je confond avec un autre)
[^] # Re: From Scratch roulez
Posté par Pierre Tramo (site web personnel) . Évalué à 8.
C'est vrai que l'on sait le faire aussi sur n'importe quel distros, mais alors autant passer direct a une slack, si il y a un systeme de dependances, autant l'utiliser.
[^] # Re: From Scratch roulez
Posté par Guillaume Laurent (site web personnel) . Évalué à 8.
Si tu veux bidouiller, ou customiser ton installation oui. Mais sinon avoir des packages est essentiel et fait gagner enormément de temps.
[^] # Re: From Scratch roulez
Posté par lepoulpe . Évalué à 6.
En fait, j'ai trouvé un système assez pratique : http://www.gormand.com.au/peters/tools/graft/graft.html(...) qui permet d'installer les applis/bibliothèques dans un répertoire particulier (style /usr/local/pkgs/Emacs-21.1) et ensuite de faire des liens symboliques de tous les fichiers de ce répertoire dans l'arborescence classique. Ca permet d'avoir plusieurs versions du même programme installées, de tester la nouvelle, si ça marche pas on revient à l'ancienne etc...
[^] # Re: From Scratch roulez
Posté par Tony Gencyl . Évalué à 7.
Oui et apparement c'est base sur Stow (http://www.gnu.org/software/stow/(...)) qui s'occupe de faire les liens. Stow n'a plus bouge depuis longtemps, c'est assez sommaire, mais je l'utilise tjs ...
Je vais de suite essayer ce Graft :-)
[^] # Re: From Scratch roulez
Posté par Pascal Terjan (site web personnel) . Évalué à 8.
Si --nodeps "casse tout ton système" ca veut dire que tu avais besoin de mettre à jours les autres packages... Si tu sais que ca va marcher sans et donc que c'est le package qui est mal fait utilises --nodeps. J'utilise rarement --nodeps mais quend je le fait ça ne pose aucun problème.
[^] # Re: From Scratch roulez
Posté par Stéphane Del Pino . Évalué à 10.
Le paquet equiv sous Debian te permet justement d'informer à cout modique la base de données des paquets que tu as installé quelque chose à la main.
De cette manière, Debian permet aussi d'installer les tarballs «proprement».
[^] # Re: From Scratch roulez
Posté par Pierre Tramo (site web personnel) . Évalué à 3.
c'est le "à cout modique" qui me fait peur dans ta phrase. Ou est ce que l'on peut trouver des infos sur ton systeme equiv?
[^] # Re: From Scratch roulez
Posté par Anonyme . Évalué à 7.
Avec checkinstall, on peut avoir toutes ses installations répertoriées par le gestionnaire de paquet (RPM, deb, slack).
C'est idéal : on compile soit même à partir des sources et on a un RPM fait sur mesure.
Le programme fait un make install et observe ce que le make install fait pour créer le paquet.
Donc ça ne coute rien de plus que de faire un make install en fait.
http://asic-linux.com.mx/~izto/checkinstall-en.html#checkinstall(...)
[^] # Re: From Scratch roulez
Posté par Stéphane Del Pino . Évalué à 1.
Et puis, je « rappelle » quand meme, qu'on peut compiler les paquets debian à la volée, ce qui permet d'avoir le beurre et l'argent du beurre ...
[^] # Re: From Scratch roulez
Posté par Robert Palmer (site web personnel) . Évalué à 10.
On arrive au même résultat sans avoir à passer des heures à (essayer de) compiler un truc aussi gros que KDE.
Pensez à l'environnement avant d'imprimer ce commentaire - Please consider the environment before printing this comment
[^] # Re: From Scratch roulez
Posté par f l . Évalué à 1.
Mais par exemple le coup de l'objprelink pour KDE est inclu dans la Redhat 7.2
Donc LFS rulez, distribs rulez, opensource rulez
[^] # Re: From Scratch roulez
Posté par Philippe F (site web personnel) . Évalué à 1.
> pour la stabilité générale.
Il faut bien sur se rappeler en lisant cette phrase que "hazardous" en anglais signifie "risqué". J'imagine que la subtilité est volontaire mais comme je l'ai découvert personellement assez tard, je me dis que je ne dois pas etre le seul à avoir fait la faute.
[^] # Re: From Scratch roulez
Posté par didbaba . Évalué à 10.
Si oui alors essaye LFS, et tu verras ce que ta machine a dans le ventre.
Sinon effectivement les distro poropose le binaire le plus commun qui tournera sur le plus de machine. Debian i386 ? Mdk i586 ...
[^] # Re: From Scratch roulez
Posté par yves-laurent allaert . Évalué à 1.
ou gcc3 ne donne pas du code assez stable?
car je me ferait bien une lsf avec gcc3 moi
[^] # Re: From Scratch roulez
Posté par didbaba . Évalué à 3.
[^] # Re: From Scratch roulez
Posté par Jésus Christ . Évalué à 2.
images sur leur site genre i386, i586, I686,
athlon,...
ca pourrait se faire...
nan ?
[^] # Re: From Scratch roulez
Posté par Jean-Pierre Schwickerath (site web personnel) . Évalué à 1.
Et puis l'optimisation pour une architecture ne se révelle pas forcément stable sur d'autres.
Autre point: Regarde un peu les scripts de démarrage, allez disons SuSE. C'est,
1. Je regarde d'où je suis lancé
2. Je regarde si les fichiers de configurations que je dois lire sont lisibles par l'utilisateur courrant.
3. S oui, je les lis.
4. Si aucune erreur ne s'est produite, je vérifie si les variables en questions ont une valeur, et si celle-ci est cohérente.
5. Si oui, je regarde si le fichier à exécuter est exécutable.
6. Si oui, je le lance avec les parametres et je récupère les valeurs de retour.
7. Je vérifie les valeurs de retour.
Tout ça est nécessaire pour ne pas risquer de faire des trucs bizarres si un débutant s'amuse à manipuler ses fichiers de configuration.
Sur ma LFS, c'est
1. Je lis le fichier de configuration
2. J'execute le programme avec les paramètres.
Je me moque des valeurs de retour ou si les paramètres sont corrects, car je sais qu'ils le sont puisque c'est moi qui les ai posés dans le fichier de configuration.
7.
[^] # Re: From Scratch roulez
Posté par shbrol . Évalué à 1.
# bonne idée
Posté par Pierre Tramal (site web personnel) . Évalué à 10.
A noter un autre article pour le tuning de KDE: http://hints.linuxfromscratch.org/hints/kde.txt(...) qui explique pas à pas (dépendances comprises) comment compiler un KDE au poil.
[^] # Re: bonne idée
Posté par VACHOR (site web personnel) . Évalué à 10.
WM roulaize anyway...
[^] # Re: bonne idée
Posté par f l . Évalué à 10.
Si j'ai bien retenu ce que j'avais lu à l'époque, la lenteur viendrait du linkage dynamique des libs relatives au c++ utilisé par KDE qui serait assez lent et provoquerait un gros temps de latence.
Donc je ne crois pas qu'il y ait des composants qui reste en mémoire, mais peut etre que les binaires / libs etc. sont un peu plus gros.
[^] # Re: bonne idée
Posté par f l . Évalué à 1.
§6: An Option For The Speed Obsessed
27 Jul Archive Link: Faster startups by fixing C++ object files before linking (new version and results)
[^] # Re: bonne idée
Posté par jojolapin . Évalué à 7.
Au passage, j'ai essayé kde 3 en cvs, et le lancement est beaucoup plus rapide qu'avant (au pifomètre je dirais 50%).
# Javascript
Posté par f l . Évalué à 1.
Si c'est plus le cas, alors je me demande pourquoi les packages de kde pour sid sont compilés sans (vu que kde met plus de 30s a demarrer sur mon athlon xp flambant neuf avec tout plein de ram j'en conclue qu'il est compilé sans).
[^] # Re: Javascript
Posté par Robert Palmer (site web personnel) . Évalué à 1.
2.2.1-16mdk
- Remove objprelink reference
2.2.1-15mdk :
[...]
- Remove objprelink (khtml crashs all the time with objprelink)
Rien n'indique qu'ils l'on remis pour KDE 2.2.2
En tout cas avec une Mandrake 8.1 (2.2.1-7mdk) le chargement de KDE est très rapide : pas plus de 15s avec mon P3 600.
Pensez à l'environnement avant d'imprimer ce commentaire - Please consider the environment before printing this comment
[^] # Re: Javascript
Posté par nixo . Évalué à 1.
Et ce avec seulement 64 MO de SDRAM.
Alors quand je vois écrit que :
"... le temps de démarrage de KDE passe de 30-40 secondes à 10-15, et celui de konqueror passe de 6-10 secondes à 2-4 ...
je me demande sur quel type de machine ?
Il me semble me souvenir que même sur mon P200 MMX (tjrs avec 64 MO de SDRAM) KDE ne mettait pas 40 secondes ...
Quand à Konqueror, le temps de lancement indiqué me semble également des plus farfelus. (sans vouloir vexer qui que ce soit :o)
[^] # Re: Javascript
Posté par Henri . Évalué à 1.
[^] # Re: Javascript
Posté par yves-laurent allaert . Évalué à 1.
ils ont donc deja presque optimise les packages pour ton ordi
[^] # Re: Javascript
Posté par Sebastien . Évalué à 2.
Bof, j'utilise l'objprelink depuis plus d'un mois, et je n'ai pas de pb particulier. En tout cas, Konqueror marche toujours aussi bien.
Oui, ça va un peu plus vite, c'est vrai. Rien de trancendant, mais c'est plus rapide.
# Gnome rulez , KaDeHEux su><><
Posté par laurent Belmonte . Évalué à -10.
de toute maniere KDE suxx
[^] # Re: Gnome rulez , KaDeHEux su><><
Posté par Thomas Cataldo (site web personnel) . Évalué à 1.
* New upstream version
* Don't use objprelink anymore
-- Ivan E. Moore II <rkrusty@debian.org> Fri, 07 Sep 2001 12:10:00 -0700
Voilà monsieur, debian a supprimé le prelink.
trolls sucks
[^] # Re: Gnome rulez , KaDeHEux su><><
Posté par Philippe F (site web personnel) . Évalué à 1.
Pour le prelinking:
http://lists.kde.org/?l=kde-core-devel&m=99134101312638&w=2(...)
[^] # Re: Gnome rulez , KaDeHEux su><><
Posté par Vivi (site web personnel) . Évalué à 2.
# Optimisation
Posté par Cook Captain . Évalué à 1.
En tout cas je pense que le plus simple serait d'intégrer le prelink dans gcc pour éviter une étape suplémentaire lors de la génération des objets.
Je pense également qu'il serait bien que les distribs incluent des packages optimisés - au moins le minimum - de facto car n'en déplaisent aux linux gurus, moi (comme beaucoup) je me sers de mon PC sous linux non pas pour faire du linux et pour faire autre chose. (J'ai été admin sys. Unix pendant 6 ans et maintenant recompiler/optimiser un sys qui devrait fonctionnement bien du premier coup ca me gonfle grave).
[^] # Re: Optimisation
Posté par Emmanuel Blindauer (site web personnel) . Évalué à 5.
La seconde c'est a la compilation optimiser le code généré par le compilo, cad spécialisé pour un PIII et puis qu'il deroule toute les boucles for etc...
Le premier c'est le boulot du devel. chez kde ils l'ont bien fait
Le second c'est le boulot du compilateur et de celui qui cree les packages.
[^] # Re: Optimisation
Posté par Bee Bairt . Évalué à 4.
[^] # beaucoup de conneries
Posté par Anonyme . Évalué à 1.
C'est qui le blaireau là ?
Tu dis que le problème d'optimisation vient de gcc ?
Pourtant, dans un cas comme dans l'autre, c'est gcc qui est utilisé ? Donc le problème ne vient pas de gcc.
« En tout cas je pense que le plus simple serait d'intégrer le prelink dans gcc pour éviter une étape suplémentaire lors de la génération des objets. »
Tu dis ça comme ça, au feeling, ou tu es expert de la chose ?
« Je pense également qu'il serait bien que les distribs incluent des packages optimisés - au moins le minimum - de facto car n'en déplaisent aux linux gurus, moi (comme beaucoup) je me sers de mon PC sous linux non pas pour faire du linux et pour faire autre chose. (J'ai été admin sys. Unix pendant 6 ans et maintenant recompiler/optimiser un sys qui devrait fonctionnement bien du premier coup ca me gonfle grave) »
Le de facto, il vient faire quoi là ?
Les paquets livrés avec les distribs sont optimisés pour tourner sous toutes les configurations supportés par les distribs. C'est ce qui fait que ces distribs fonctionnent du premier coup.
Bref, tout est dans le titre
[^] # Re: beaucoup de conneries
Posté par Jean-Yves B. . Évalué à 5.
Il n'a pas complètement tort. Le problème est que objprelink est actuellement spécifique et aux x86 et aux objets ELF. Donc ce n'est pas très portable (pas facilement pour l'instant) donc ce n'est pas intégré à gcc.
Mais il est vrai que le compilo et l'éditeur de liens ont besoin d'être optimisés encore et toujours (le problème actuel venant plutôt de ld, mais aussi en partie de g++).
La priorité actuelle des développeurs de gcc est quand même plutôt d'avoir des objets fonctionnels, car gcc 3 pose encore des problèmes avec certaines applis (je n'ai plus les noms).
[^] # Re: beaucoup de conneries
Posté par Anonyme . Évalué à 3.
Je me demandais juste si le type parlais en connaissance de cause, ou si son avis était aussi élaboré que les autres.
Parce que reprocher au staff de gcc que les paquets binaires de KDE aient été optimisé pour i386, c'est un peu gonflé.
[^] # Re: beaucoup de conneries
Posté par Philippe F (site web personnel) . Évalué à 2.
> Donc le problème ne vient pas de gcc.
Affirmation un peu rapide! Le probleme, c'est qu'on est obliger d'utiliser un programme exterieur pour faire qqch que gcc aurait du faire depuis longtemps. Donc c'est bien gcc qui est en cause, c'est lui qui n'optimise pas son edition de lien.
> Je me dis que le programme en question est soit mal conçu soit que les développeurs sont des
> blaireaux trolleurs -(je parle pas de kde mais de gcc - mais ou est donc Stallman) »
J'ai un ami qui a bosse sur gcc pour faire un port. Son bilan etait que c'etait un truc absolument immonde, avec des symboles dont tu ne sais d'ou ils viennent, des fonctions dans tous les sens, des trucs obsoletes qui se melangent avec des trucs indispensables, et aucun partitionnement clair de ce qui sert a quoi.
Ca fait peur quand tu te dis que c'est le compilateur de reference du logiciel libre. Je ne sais pas a quel point RMS est encore l'auteur de ce qu'il y a dans gcc mais je m'interroge sur sa responsabilite par rapport a ce bordel. Emacs est mieux ?
gcc est certainement le compilateur le plus porte mais quand tu vois la merde que c'est pour faire un port, tu te demandes a quel point il n'y a pas de l'energie gachee et si on devrait pas tout reprendre depuis le debut.
De meme, j'ai bosse sur vim, qui doit etre un des clones vi les plus utilises au monde. Le code est immonde, avec des fichiers de 10000 lignes, des fonctions encore en C pre-ansi, des trucs qui s'appellent dans tous les sens. Pour dire, il y a trois fichiers qui s'appellent "misc". A ton avis, il y a quoi dedans ?
Pas de quoi etre fier.
En ce qui concerne le prelinking, l'auteur est a ce que j'ai compris un developpeur de ld, donc cette optimisation sera bien inclus dans gcc a terme.
[^] # Re: beaucoup de conneries
Posté par Gaël Le Mignot . Évalué à 2.
Il ne faut pas confondre un compilateur et un linker. Le seul rôle d'un compilateur (gcc) est de convertir un fichier source (c, c++ ou autre) en un code assembleur optimisé. Ensuite un assembleur (as) convertit ce fichier assembleur en fichier objet, et enfin le linker (ld) fait l'édition des liens.
gcc exécute les autres programmes pour éviter d'avoir à taper 42 lignes de commandes, mais ce n'est pas à gcc de faire l'édition des liens, c'est à ld. Donc toutes vos critiques sur l'équipe de gcc devrait plutôt porter sur l'équipe des binutils.
</mode pedantic>
[^] # Re: beaucoup de conneries
Posté par Cook Captain . Évalué à 1.
# l'optimisation maximale pour kde...
Posté par Benjamin Michotte . Évalué à -3.
[^] # binny ....
Posté par kadreg . Évalué à 0.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.