Re: [HS] lignes uniques, performances
Selon Yves Rutschle <debian.anti-spam@rutschle.net>:
> On Fri, Mar 26, 2004 at 02:47:13PM +0100, Sylvain Sauvage wrote:
> > Pas tout à fait : dans un tube, il y a deux bouts.
>
> Qui sont comptés en temps système...
>
> > 'time cat linux | perl ...' mesure le temps que met cat pour lire ET pour
> > donner les infos à perl. Pas forcément celui que met perl pour lire ce qui
> > vient de cat (preuve : le temps est différent avec <linux). Le tube est un
> > buffer qui modifie le comportement de cat ET celui de perl.
>
> Non, le tube ne modifie que le temps système et `time cat
> linux | perl` mesure le temps de l'ensemble, pas du tout
> simplement cat. L'execution de cat (en temps user) est bien
> évidement très courte:
>
> [yves@oban]:yves$ (time cat linux ) | perl -ne 'print if !$l{$_}++' >
> /dev/null
>
> real 1m4.090s
> user 0m0.030s
> sys 0m1.620s
>
> Le temps système depend d'autres choses (buffers et swap
> par exemple) et le temps réel a évidement peu de rapports
> avec notre problème.
>
> > De plus, comme le disait Manu <kolter@free.fr>, il faut
> > faire attention aux buffers du système. Et je pense qu'il
> > faudrait même ignorer la première (lorsque le noyau lit le
> > fichier pour la première fois). Une autre solution est
> > d'avoir un fichier qui soit deux ou trois fois plus gros
> > que la mémoire disponible : ça éliminerait le cache de
> > linux.
>
> Tout ça ne change pas le temps *user* qui est le seul à être
> à peu près prédictible. Qq soit la charge, il devrait
à mon avis si, je ne peux pas tester car je n'ai qu'une connexion ssh sous la
main mais si tu fais : time ls /usr/bin
2 fois de suite, je pense que le temps user va être complètement différent....
ce qui montre que ce que le système garde en cache mémoire influ sur les
perfs... et que pour fait un comparatif de programmes qui traite les mêmes
données (obtenu par le même appel systemes, dans notre cas lecture d'un
fichier), le cache mémoire est un paramètre à prendre en compte......
M.
> rester le même, même si tu swappes le process, même si tu le
> fais tourner sur un portable que tu endors pendant 45 jours
> avant de le reveiller pour finir.
>
> Et donc, avec des charges CPU de plus en plus grosses:
>
> [yves@oban]:yves$ time perl -ne 'print if !$l{$_}++' < linux > /dev/null
>
> real 5m1.439s
> user 0m24.810s
> sys 0m5.030s
> [yves@oban]:yves$ time perl -ne 'print if !$l{$_}++' < linux > /dev/null
>
> real 11m1.316s
> user 0m25.720s
> sys 0m21.720s
>
> Les temps users restent essentiellement les mêmes. Dans le
> second cas, le temps système est soudainement plus grand car
> linux a commencé à swapper (perl monte à plus de 270Mo).
>
>
> >Il faut lancer chaque commande au moins trois ou
> > quatre fois (une centaine pour faire de *vrais*
> > statistiques).
>
> Je suis d'accord avec ça, et je dois avouer par rapport à
> mon premier mail que la différence entre cat | perl et perl
> < fichier se perd dans le bruit de mesure. Ça montre tout de
> même que le UUOC n'est finalement pas particulièrement
> horrible.
>
> Y.
>
>
> --
> Pensez à lire la FAQ de la liste avant de poser une question :
> http://wiki.debian.net/?DebianFrench
>
> Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
>
> To UNSUBSCRIBE, email to debian-user-french-request@lists.debian.org
> with a subject of "unsubscribe". Trouble? Contact
> listmaster@lists.debian.org
>
>
--
Emmanuel Bouthenot - Kolter
MAIL : kolter@free.fr
GPG : 0x414EC36E
WWW : http://kolter.free.fr
JABBER : kolter@amessage.info
TEL : (+33) 06 17 29 01 91
Reply to: