Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[Utilitaire] Déterminer le temps de compilation (résolu)
View unanswered posts
View posts from last 24 hours

Goto page Previous  1, 2, 3, 4, 5  Next  
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
Temet
Advocate
Advocate


Joined: 14 Mar 2006
Posts: 2586
Location: 92

PostPosted: Thu Jul 13, 2006 3:10 pm    Post subject: Reply with quote

Pour le CCACHE, m'en suis encore jamais servi! J'ai vu passer ça sur un topic et ça fait partie des trucs à expérimenter à mon retour en France. T'as une tite page dans le wiki francais ;)

Sinon, pas con le truc des SBU.
Après si un mec arrive à faire un script qui peut évaluer une durée à partir de la config et des SBUs, ce serait encore mieux ;)
Back to top
View user's profile Send private message
Il turisto
l33t
l33t


Joined: 12 May 2004
Posts: 968
Location: Battincourt - Belgique

PostPosted: Thu Jul 13, 2006 3:17 pm    Post subject: Reply with quote

Peux tu détailler plus le SBU stp?


Voici la réponse du gars de basc :

Code:

I'm really sorry and maybe you want to call me an a**hole, but I'm planning
to revive the whole gentoo-project basc with its buildtime database on
linux-stats.org and so I really don't see the sense in creating a new
project which does the same thing.

Sorry, I can't help you with this.

> Thanks a lot.

dma147
Back to top
View user's profile Send private message
kaworu
Guru
Guru


Joined: 07 Dec 2005
Posts: 450

PostPosted: Thu Jul 13, 2006 3:57 pm    Post subject: Reply with quote

Pour le SBU y'a un lien dans mon 1er post.
en gros l'idée c'est de dire : le temps pour compiler le paquet sys-devel/binutils c'est 1 SBU.
pour moi 1 SBU ~= 4m14s = 254 secondes
Code:

$ genlop -c

 * sys-devel/binutils-2.17

       current merge time: 1 seconds.
       ETA: 4 minutes and 13 seconds.

donc pour Wine (par exemple) :
Code:

$ genlop -c

 * app-emulation/wine-0.9.17

       current merge time: 3 seconds.
       ETA: 28 minutes and 12 seconds.

Wine = 28 mins 15 sec = 1695 secondes = 6.9183673469387754 SBU ~= 7 SBU

Si maitenant qqn arrive avec une config qui n'as rien à voir avec la mienne, elle calcul son propre t/SBU (disont 5minutes = 300sec) et peut donc déduire que compiler Wine lui prendra ~ SBUWine x t/SBU = 7 x 300 = 2100 secondes = 35 minutes.

Le but serai de faire un programme qui :
- calcule le t/SBU de la machine hôte
- a une base de donnée de SBU par paquet
- calcule (prédis?) le temps de compilation d'un paquet.

donnez le SBU de Firefox pour faire une comparaison ^_____^
chez moi :
firefox : 33m52s = 2032secondes = 8 SBU
_________________
Macbook
Core2Duo @ 2.0GHz - 1Go RAM - HD 80Go - Intel GMA 945

Gentoo GNU/Linux
~amd64 - 2.6.24-gentoo-r2 - Fluxbox || (KDE && Compiz-Fusion)


Last edited by kaworu on Thu Jul 13, 2006 4:02 pm; edited 1 time in total
Back to top
View user's profile Send private message
Il turisto
l33t
l33t


Joined: 12 May 2004
Posts: 968
Location: Battincourt - Belgique

PostPosted: Thu Jul 13, 2006 4:00 pm    Post subject: Reply with quote

et le sbu tu le calcule comment?

un truc bidon genre tu fais une mega boucle qui pompe tout le cpu et tu en ressore le temps?
Back to top
View user's profile Send private message
kaworu
Guru
Guru


Joined: 07 Dec 2005
Posts: 450

PostPosted: Thu Jul 13, 2006 4:03 pm    Post subject: Reply with quote

tu peux le calculer soit en te basant sur genlop (moyenne du temps de compil en prenant chaques fois que t'as compilé binutils), les logs de portage, ou alors compiler une fois (voir 3fois) binutils pour te créer une idée du t/SBU.
_________________
Macbook
Core2Duo @ 2.0GHz - 1Go RAM - HD 80Go - Intel GMA 945

Gentoo GNU/Linux
~amd64 - 2.6.24-gentoo-r2 - Fluxbox || (KDE && Compiz-Fusion)
Back to top
View user's profile Send private message
Temet
Advocate
Advocate


Joined: 14 Mar 2006
Posts: 2586
Location: 92

PostPosted: Thu Jul 13, 2006 4:09 pm    Post subject: Reply with quote

Il turisto wrote:
et le sbu tu le calcule comment?

un truc bidon genre tu fais une mega boucle qui pompe tout le cpu et tu en ressore le temps?


T'as lu le post précédent trop vite, c'est tout bien expliqué dedans ;)
C'est pas con du tout comme idée ... un paquet "test" quoi.
Back to top
View user's profile Send private message
geekounet
Bodhisattva
Bodhisattva


Joined: 11 Oct 2004
Posts: 3772
Location: Wellington, Aotearoa

PostPosted: Thu Jul 13, 2006 4:28 pm    Post subject: Reply with quote

A la base, c'était calculé par rapport à la compilation de bash :)
Back to top
View user's profile Send private message
kaworu
Guru
Guru


Joined: 07 Dec 2005
Posts: 450

PostPosted: Thu Jul 13, 2006 4:33 pm    Post subject: Reply with quote

pierreg wrote:
A la base, c'était calculé par rapport à la compilation de bash :)


pourquoi pas, mais bash a un temps trop court de compilation (0.25 SBU chez moi) ce qui peut donner des comparaisons moins fiables. On peut soit utiliser le SBU, soit un autre paquet qui répond à 2 conditions :
- temps de compilation entre 5 et 10 mins
- fait parti du système de base.
_________________
Macbook
Core2Duo @ 2.0GHz - 1Go RAM - HD 80Go - Intel GMA 945

Gentoo GNU/Linux
~amd64 - 2.6.24-gentoo-r2 - Fluxbox || (KDE && Compiz-Fusion)
Back to top
View user's profile Send private message
Il turisto
l33t
l33t


Joined: 12 May 2004
Posts: 968
Location: Battincourt - Belgique

PostPosted: Thu Jul 13, 2006 11:03 pm    Post subject: Reply with quote

Temet wrote:
Il turisto wrote:
et le sbu tu le calcule comment?

un truc bidon genre tu fais une mega boucle qui pompe tout le cpu et tu en ressore le temps?


T'as lu le post précédent trop vite, c'est tout bien expliqué dedans ;)
C'est pas con du tout comme idée ... un paquet "test" quoi.


Oui c vrai mais je devais partir.

donc on se baserait sur :

1 bsu = time emerge --nodeps binutils.


Mais seulement il faudrait être sur que l'utilisateur ne fais rien pendant ce temps la.

Bon je suis tjs partant pour cela mais que pensez vous du message du mec de basc?


edit : pour le bsu il ne faut pas de ccache et évidemment pas de distcc ...
sinon pq pensez vous que le bsu est mieux qu'un temps en secondes? Simplement car cela permet de croiser des comparatifs entre cpu, ... ?
Exemple : j'ai un p4 2 giga et mon bsu est de 4 minutes et d'un autre cote un amd xp 2000+ et mon temps est aussi de 4 minutes alors je peux utiliser les résultats du p4?
Mais dans ce cas un temps serait tout aussi clair.

Aussi que nous apporte le bsu?
Back to top
View user's profile Send private message
man in the hill
Veteran
Veteran


Joined: 15 Dec 2005
Posts: 1552
Location: Madinina

PostPosted: Fri Jul 14, 2006 12:33 am    Post subject: Reply with quote

Il turisto wrote:
sinon pq pensez vous que le bsu est mieux qu'un temps en secondes? Simplement car cela permet de croiser des comparatifs entre cpu, ... ?
Exemple : j'ai un p4 2 giga et mon bsu est de 4 minutes et d'un autre cote un amd xp 2000+ et mon temps est aussi de 4 minutes alors je peux utiliser les résultats du p4?
Mais dans ce cas un temps serait tout aussi clair.

Aussi que nous apporte le bsu?


A mon avis le sbu n'apporte rien du tout puisque l'on veut des temps, peut-être une variable ds ton script ...de toute façon , tu es obligé de le traduire en temps pour chaque paquet sinon cela ne veux pas dire grand chose donc autant bosser avec le time (comparer le temps des paquets est plus parlant que le sbu...) ...

Ensuite avec une grosse base de données, tu pourras sortir de bonnes stats en fonction de l'arch/cpu (comparaisons intéressante amd/intel !) , des flags/ldflags/version-gcc , tour ou portable, etc...Tu fais un site à la jhbuild http://jhbuild.bxlug.be/ qui propose un script en python qui lui renvoit des infos sur la compile de gnome-cvs.

@+
_________________
Get Up and Go !
Back to top
View user's profile Send private message
PabOu
Veteran
Veteran


Joined: 11 Feb 2004
Posts: 1088
Location: Hélécine - Belgium

PostPosted: Fri Jul 14, 2006 1:16 am    Post subject: Reply with quote

Je suis également d'accord de fournir mes infos de compilation...

Mais je suis tres sceptique sur leur utilité... vraiment trop de paramètres entrent en compte (je liste ceux auquels je pense même si déjà dit) :

  • Disque dur, avec vitesse qui diffère selon l'utilisation d'un utilisateur, mais aussi selon l'endroit ou on travaille physiquement sur le disque, .. mais aussi paramètres hdparm, performances du chipset et de son module dans le kernel, ... et puis si on travaille sur un partage distant (par réseau) ?
  • Filesystem utilisé.. sur certains fichiers, un FS sera peut-etre plus rapide et cela peut fausser les SBU (mais j'ai vraiment pas l'impression que c'est ca qui va faire tout basculer)
  • Les useflags peuvent modifier les trucs à compiler
  • Utilisation ccache et/ou distcc
  • version de gcc (ou autre) , glibc, et toute la clique
  • kernel (et patchset) utilisé... Ca fait varier les performances.
  • Le(s) CPU(s)... On à déjà vu des CPU qui réduisent leur vitesse automatiquement quand ils chauffent de trop... ou bien que l'utilisateur ait volontairement changé la vitesse du CPU et à oublié de remettre en place avant de faire son emerge..
  • La ram.. vitesse et taille. Et si ca swappe PAS pour le programme test qui va servir à étalonner le SBU.. Mais que pour un programme plus gros ca swappe ?
  • Le temps de téléchargement des sources... Oui oui, si il ne faut pas les redownloader, le temps donné par genlop sera plus court !
  • PORTAGE_NICENESS
  • Comme déjà dit, utilisation de la machine à coté de l'emerge (surf, film, mp3, jeu,.. ou même quelqu'un qui travaille.. si si, ca arrive :-P). Peut-etre que certaines activitées sont vraiment très légères pour la charge système, mais d'autres peuvent être assez lourdes (azureus + emerge = swap chez moi).
  • Moi, ca m'arrive souvent de faire plusieurs emerge en parrallèle, même si c'est pas recommandé.. voilà encore qui fausse les résultats de genlop...
  • Un emerge incomplet (erreur de compilation par exemple), comment apparait-il avec genlop ?


Et je suis certain que j'en oublie plein ;)



PS : drôle de question, mais en tapant, je me suis pris à mettre "émerge". Et donc, ma question m'est naturellement venue à l'esprit : on dit éééémerge ou iiiiimerge (à l'english) ?
_________________
Mangez du poulet !
Back to top
View user's profile Send private message
titoucha
Advocate
Advocate


Joined: 21 Jul 2005
Posts: 2374
Location: Genève

PostPosted: Fri Jul 14, 2006 2:42 am    Post subject: Reply with quote

Je veux bien aussi fournir mes infos, même si je suis très septique sur la possibilité de faire quelque chose d'utilisable vu que sur ma propre machine entre deux compilation du même programe les temps que genlop me donne ne correspondent pas à la réalité, alors sur une autre machine !
Back to top
View user's profile Send private message
kaworu
Guru
Guru


Joined: 07 Dec 2005
Posts: 450

PostPosted: Fri Jul 14, 2006 6:01 am    Post subject: Reply with quote

C'est à dire que si je dis : firefox ~= 8 SBU
c'est plus clair (AMHA) que 35mins avec un centrino 1.73Ghz.
Pour qqn qui doit compiler sur une autre arch (genre dual core 2x plus puissant)
ça sera plus parlant pour lui d'avoir le SBU.
Comment savoir si une archi 2x plus puissante compile 2x plus vite? où est-ce exponentiel? ou le ./configure ralenti le tout?
si je te dis : firefox 35 mins sur centrino 1.73Ghz comment calcul-tu pour un celeron 400Mhz? et pour un AtlhonX2 ?
Si on doit avoir des stat par puissance et processeur, on s'en sort jamais non?
_________________
Macbook
Core2Duo @ 2.0GHz - 1Go RAM - HD 80Go - Intel GMA 945

Gentoo GNU/Linux
~amd64 - 2.6.24-gentoo-r2 - Fluxbox || (KDE && Compiz-Fusion)
Back to top
View user's profile Send private message
Il turisto
l33t
l33t


Joined: 12 May 2004
Posts: 968
Location: Battincourt - Belgique

PostPosted: Fri Jul 14, 2006 7:25 am    Post subject: Reply with quote

PabOu wrote:
Je suis également d'accord de fournir mes infos de compilation...

Mais je suis tres sceptique sur leur utilité... vraiment trop de paramètres entrent en compte (je liste ceux auquels je pense même si déjà dit) :

  • Disque dur, avec vitesse qui diffère selon l'utilisation d'un utilisateur, mais aussi selon l'endroit ou on travaille physiquement sur le disque, .. mais aussi paramètres hdparm, performances du chipset et de son module dans le kernel, ... et puis si on travaille sur un partage distant (par réseau) ?
  • Filesystem utilisé.. sur certains fichiers, un FS sera peut-etre plus rapide et cela peut fausser les SBU (mais j'ai vraiment pas l'impression que c'est ca qui va faire tout basculer)
  • Les useflags peuvent modifier les trucs à compiler
  • Utilisation ccache et/ou distcc
  • version de gcc (ou autre) , glibc, et toute la clique
  • kernel (et patchset) utilisé... Ca fait varier les performances.
  • Le(s) CPU(s)... On à déjà vu des CPU qui réduisent leur vitesse automatiquement quand ils chauffent de trop... ou bien que l'utilisateur ait volontairement changé la vitesse du CPU et à oublié de remettre en place avant de faire son emerge..
  • La ram.. vitesse et taille. Et si ca swappe PAS pour le programme test qui va servir à étalonner le SBU.. Mais que pour un programme plus gros ca swappe ?
  • Le temps de téléchargement des sources... Oui oui, si il ne faut pas les redownloader, le temps donné par genlop sera plus court !
  • PORTAGE_NICENESS
  • Comme déjà dit, utilisation de la machine à coté de l'emerge (surf, film, mp3, jeu,.. ou même quelqu'un qui travaille.. si si, ca arrive :-P). Peut-etre que certaines activitées sont vraiment très légères pour la charge système, mais d'autres peuvent être assez lourdes (azureus + emerge = swap chez moi).
  • Moi, ca m'arrive souvent de faire plusieurs emerge en parrallèle, même si c'est pas recommandé.. voilà encore qui fausse les résultats de genlop...
  • Un emerge incomplet (erreur de compilation par exemple), comment apparait-il avec genlop ?


Et je suis certain que j'en oublie plein ;)



PS : drôle de question, mais en tapant, je me suis pris à mettre "émerge". Et donc, ma question m'est naturellement venue à l'esprit : on dit éééémerge ou iiiiimerge (à l'english) ?



Evidemment ici on parle d'un temps moyen... une approximation.

Je pense qu'il faille exclure les distcc car de ce côté on ne peut rien savoir.



Euh je ne sais plus qui a parlé de script en python et malheureusement c'est un language que je ne maîtrise pas. Je pensais faire cela en bash tout simplement.
Mais bon si je me lance la dedans et qu'un codeur python veut aider il est le bienvenu :-) .


Last edited by Il turisto on Fri Jul 14, 2006 9:33 am; edited 1 time in total
Back to top
View user's profile Send private message
titoucha
Advocate
Advocate


Joined: 21 Jul 2005
Posts: 2374
Location: Genève

PostPosted: Fri Jul 14, 2006 7:55 am    Post subject: Reply with quote

Alors tu seras obliger d'utiliser une référence (SBU) comme le proposait @kaworu car sinon c'est absolument impossible à calibrer vu le nombre de paramètres à prendre en compte.

Je pense pour ma part que c'est la seul solution valable.
Back to top
View user's profile Send private message
Temet
Advocate
Advocate


Joined: 14 Mar 2006
Posts: 2586
Location: 92

PostPosted: Fri Jul 14, 2006 8:03 am    Post subject: Reply with quote

Je le pense aussi, ça donne une unité indépendante (plus ou moins) de la puissance de la machine.
Back to top
View user's profile Send private message
titoucha
Advocate
Advocate


Joined: 21 Jul 2005
Posts: 2374
Location: Genève

PostPosted: Fri Jul 14, 2006 8:07 am    Post subject: Reply with quote

Exacte et comme dit plus haut ensuite tu calcule combient vaut cette référence pour ta machine et tu peut avec celle-ci calculer tous les autre temps.


Il y aurrait bien la méthode statistique qui fonctionnerait aussi, mais elle demmande beaucoup trop de données de départ pour avoir une approximation fiable, donc pour moi elle n'est pas réaliste dans notre cas.
Back to top
View user's profile Send private message
Il turisto
l33t
l33t


Joined: 12 May 2004
Posts: 968
Location: Battincourt - Belgique

PostPosted: Fri Jul 14, 2006 1:14 pm    Post subject: Reply with quote

Ce week-end je n'aurait pas beaucoup de temps a moi car madame me réclame tout plein pour sortir :-).

Aussi je vais y réfléchir et lundi (si je n'oublie pas) je vous expose ce que je pense faire. Après on en cause et puis je me lance.
Back to top
View user's profile Send private message
Magic Banana
Veteran
Veteran


Joined: 13 Dec 2005
Posts: 1907
Location: Belo Horizonte, Minas Gerais, Brasil

PostPosted: Fri Jul 14, 2006 1:45 pm    Post subject: Reply with quote

N'existe-t-il pas une commande bas niveau qui permet d'avoir le temps de vie d'un thread indépendemment des autres.

Après tout, les différents threads sont ordonnancés par le kernel et il est possible de connaitre l'état d'un thread (suspendu, en cours, etc.). Certes, je m'éloigne grandement de votre projet puisque cela reviendrait à lancer un petit programme avant chaque emerge qui discuterait avec l'ordonnanceur pour obtenir les véritables temps de compilation (indépendamment des autres applications) contrairement à ce qui est loggé par emerge...

Sinon, tu devrais essayer d'insister auprès de dma147 (fait gaffe il est du genre succeptibles ce qui explique, mais n'excuse pas, que des développeurs se sont amusés à le faire craquer... :roll: ). Tu pourrais récupérrer son code et lui demander une collaboration pour t'aider à le comprendre et l'améliorer. Je le rejoins sur le fait qu'il est peu constructif (bien que plus excitant) de commencer de rien un logiciel qui a déjà été fait.
Back to top
View user's profile Send private message
Il turisto
l33t
l33t


Joined: 12 May 2004
Posts: 968
Location: Battincourt - Belgique

PostPosted: Fri Jul 14, 2006 2:30 pm    Post subject: Reply with quote

Euh magic banana n'aurait tu pas des problèmes d'utf8?

Bref j'ai déjà réécrit a dma147 et ce sans réponses. Je ne peut le forcer à nous aider.

Sinon pour calculer le temps d'éxécution réel d'un processus dans le cpu on peut utiliser time.

Je viens de faire un man time et je crois que ce qui m'intéresserait serait le truc suivant :

time -f %S emerge binutils

pouvez vous m'éclairer sur l'utilisation des arguments avec time? Pensez vous que ceci serait une bonne idée?
Back to top
View user's profile Send private message
kaworu
Guru
Guru


Joined: 07 Dec 2005
Posts: 450

PostPosted: Sat Jul 15, 2006 10:43 am    Post subject: Reply with quote

Oui faire un truc style time emerge -1 binutils serait pas mal. Le top serait tout de même de se baser sur les logs de portage (comme le fait genlop) pour avoir des infos sur combiens de temps met binutils pour être compilé (je l'ai déjà compilé plus de 5x, ça fait une moyenne fiable) -- et après seulement, si il n'y pas de logs d'emerge de binutils, on peut tenter un time emerge -1 binutils mais je n'aime pas bcp cette solution car elle demande d'être en root, elle reemerge binutils, et c'est moins fiable qu'une moyenne de logs qui sera déjà surement présente.
_________________
Macbook
Core2Duo @ 2.0GHz - 1Go RAM - HD 80Go - Intel GMA 945

Gentoo GNU/Linux
~amd64 - 2.6.24-gentoo-r2 - Fluxbox || (KDE && Compiz-Fusion)
Back to top
View user's profile Send private message
Ey
l33t
l33t


Joined: 07 Apr 2005
Posts: 863
Location: Paris

PostPosted: Sat Jul 15, 2006 10:00 pm    Post subject: Reply with quote

kaworu wrote:
donnez le SBU de Firefox pour faire une comparaison ^_____^
chez moi :
firefox : 33m52s = 2032secondes = 8 SBU

J'ai un SBU de 8,4 pour firefox 1.5.0.4
Back to top
View user's profile Send private message
titoucha
Advocate
Advocate


Joined: 21 Jul 2005
Posts: 2374
Location: Genève

PostPosted: Sun Jul 16, 2006 3:37 am    Post subject: Reply with quote

J'ai décider de faire le cheminement inverse je connais la référence le paquet sys-devel/binutils et je sais que firefox prend comme temps pour compiler 8 SBU.

Je calcule en premier ma SBU, pour cela j'ai fais la moyenne des 5 dernières compilations de binutils et j'arrive à 3m20s = 1SBU pour moi.

Sachant que le temps pour compiler firefox c'est 8 SBU je devrais trouver 8x3m20s ou 8x200s=1600s.

J'ai trouvé sur une moyenne de 4 compilations 1557secondes, je ne sais pas si c'est de la chance ou quoi mais la précision dans ce cas est excellente.
Back to top
View user's profile Send private message
kaworu
Guru
Guru


Joined: 07 Dec 2005
Posts: 450

PostPosted: Sun Jul 16, 2006 10:47 am    Post subject: Reply with quote

@titoucha effectivement ça à l'air pas mal ^______^ (waaa t'es de genève! où ça ???)

En gros si y'a une marge d'erreur de SBU d'environ 10% , ça nous permettra de faire de bonnes stats.
_________________
Macbook
Core2Duo @ 2.0GHz - 1Go RAM - HD 80Go - Intel GMA 945

Gentoo GNU/Linux
~amd64 - 2.6.24-gentoo-r2 - Fluxbox || (KDE && Compiz-Fusion)
Back to top
View user's profile Send private message
At0m3
Tux's lil' helper
Tux's lil' helper


Joined: 10 Jun 2006
Posts: 123

PostPosted: Sun Jul 16, 2006 1:04 pm    Post subject: Reply with quote

Arf, va falloir réviser ses cours de terminale de probabilité, pour calculer le nombre d'emerge à faire sur tel paquet, afin d'obtenir une probabilité se rapprochant le plus possible de la réalité... Mais si, souvenez vous, Bernouilli tous ça :D !
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Goto page Previous  1, 2, 3, 4, 5  Next
Page 2 of 5

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum