[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] Re: calcul de temps



Le 01/08/2014 08:34, Sylvain L. Sauvage a écrit :

>   En même temps, lancer date, concalc, ou Perl (ou autre langage 
> de script), c’est toujours lancer un processus de plus dans le 
> (ba)sh. Donc mon avis, c’est d’utiliser :
> — le programme que l’on comprend le mieux ;
>   (ou qui est le plus testé ou facilement compréhensible par
>    d’autres ou facilement (re)trouvable)
> — et qui est disponible partout.
> 
> Avoir
>   perl -e 'mini script'
> ou
>   perl <<EOF
>   script plus long
>   EOF
> ou encore
>   /usr/local/bin/script.pl <arguments>
> dans un script (ba)sh me semble plus propre, plus économique et 
> plus portable qu’une série de manipulations bashiennes foireuses 
> non portables ou d’appels à 36 commandes (donc processus) 
> prétendues simples.

Je suis globalement d'accord à tout ça. Je voulais
juste faire remarquer qu'on peut tout de même faire
un peu d'arithmétique (additions, multiplications,
divisions etc.) en shell et cela de manière relativement
portable (en restant dans du shell POSIX en tout cas).

Par exemple :

    a=1396459867
    b=1406879835
    diff=$(( b - a ))
    days=$(( diff / 86400 ))
    # etc.

>   Le shell, ça va bien un peu mais ça devient vite difficile à 
> maintenir

D'accord avec ça également.

> et très gourmand en processus inutiles.

Là aussi, j'ajoute un bémol. Parfois le shell peut
s'avérer plus rapide qu'un autre interpréteur (comme Perl
ou autre) sur des petits programmes assez simples et courts
car, dans le temps d'exécution, il faut compter le temps
de chargement de l'interpréteur lui-même, et sur ce point
en général le shell est assez loin devant, en particulier
le shell /bin/sh sous Wheezy par exemple qui est différent
du bash, alors qu'à l'inverse le temps de chargement de
l'interpréteur Perl (*et* des éventuels modules nécessaires)
est nettement plus long et peut représenter une part non
négligeable dans le temps global de l'exécution du script.

Dans le cas présent, si on se limite *juste* au problème du
PO (ie étant données 2 dates, on calcule la différence en
jours, heures, minutes et secondes), je suis sûr que ça ira
plus vite en shell qu'en Perl (par contre, effectivement, au
niveau lisibilité du code etc. y'aura pas photo). 

Voilà, c'est juste un petit bémol car sinon je suis d'accord
qu'il est toujours préférable d'utiliser un langage de script
adapté et qu'il faut privilégier la lisibilité du code plutôt
que les perfs (dont perso je n'ai rien à faire dans 99,9% de
mes scripts).

-- 
François Lafont


Reply to: