A mon avis ca vient de ton utilisation, et peut être un peu de la conf (je ne me souviens pas la dernière fois que j'ai utiliser la conf par défaut des OS que j'utilise.)
Maintenant qu'est ce que tu entends pas gros et lent.
un appel a une commande externe est la plus part du temps beaucoup plus couteux en temps que la même chose faite nativement. Surtout quand c'est répété.
Par exemple :
extern.sh
n=0
while [ $n -ne 100 ] ;do
TOTO=truc
echo $TOTO | sed 's/ruc/oto/'
(( n = n + 1 ))
done
ou
natif.sh
n=0
while [ $n -ne 100 ] ;do
TOTO=truc
echo ${TOTO/ruc/oto}
(( n = n + 1 ))
done
donne chez moi :
zsh extern.zsh > /dev/null 0,28s user 0,69s system 99% cpu 0,977 total
zsh natif.zsh > /dev/null 0,01s user 0,03s system 96% cpu 0,038 total
La différence est quand même flagrante, pourtant quand je la 10 occurrence de la boucle au lieu de 100 la différence ne se voit pratiquement pas.
(Note que mon exemple doit aussi fonctionner sous bash.)
[^] # Re: Quand est-il du poids
Posté par Bapt . En réponse au journal ZSH 4.3.4 full unicode. Évalué à 2.
Maintenant qu'est ce que tu entends pas gros et lent.
un appel a une commande externe est la plus part du temps beaucoup plus couteux en temps que la même chose faite nativement. Surtout quand c'est répété.
Par exemple :
extern.sh
n=0
while [ $n -ne 100 ] ;do
TOTO=truc
echo $TOTO | sed 's/ruc/oto/'
(( n = n + 1 ))
done
ou
natif.sh
n=0
while [ $n -ne 100 ] ;do
TOTO=truc
echo ${TOTO/ruc/oto}
(( n = n + 1 ))
done
donne chez moi :
zsh extern.zsh > /dev/null 0,28s user 0,69s system 99% cpu 0,977 total
zsh natif.zsh > /dev/null 0,01s user 0,03s system 96% cpu 0,038 total
La différence est quand même flagrante, pourtant quand je la 10 occurrence de la boucle au lieu de 100 la différence ne se voit pratiquement pas.
(Note que mon exemple doit aussi fonctionner sous bash.)