• [^] # Re: posix

    Posté par . En réponse au journal ZSH 4.3.4 full unicode. Évalué à 2.

    Et puis vu que dash (shell minimaliste) est souvent plus rapide que bash, j'ai de gros doute sur les perfs de zsh.


    Ce que tu dis est vrai pour des scripts posix uniquement donc faisant appel à des commandes externes pour tout ce qui n'est pas gérer par le bourne shell (grep, awk, sed, etc.)

    dash est l'implémentation de ash. sur mon poste freebsd /bin/sh correspond à ash donc la même chose que dash.

    si je fait le même test que j'ai fait au dessus.

    version bourne shell de extern.zsh ca donne :

    let $(( n = 0 ))
    while [ $n -ne 100 ] ;do
    TOTO=truc
    echo $TOTO | sed 's/ruc/oto/'
    let $(( n = n + 1 ))
    done


    sh extern.sh > /dev/null 0,21s user 0,53s system 99% cpu 0,746 total

    alors que natif.zsh donne :
    zsh natif.zsh > /dev/null 0,01s user 0,03s system 96% cpu 0,038 total

    Bien sûr ce n'est pas un benchmark, mais ça donne une idée, l'intérêt de dash et ash c'est de respecter les strictosensus le bourne shell, et donc de fournir une implémentation légère et très peu gourmande en mémoire. ce qui dans des contraintes de petite configuration peu s'avérer intéressant.

    biensûr zsh est compatible bourne shell, et sur du bourne shell pur il est plus lent et gourmant que dash ou ash :
    zsh estern.sh > /dev/null 0,26s user 0,71s system 99% cpu 0,976 total

    voila comme souvent tout dépend du besoin et des contraintes de destinations.

    Beaucoup de script shell gagnerait à utiliser du zsh avancé, mais ce n'est pas la solution unique

    PS:
    test sur FreeBSD 6.2-RELEASE sur pentium III IGhz avec 512 Mo de RAM. La même chose sur une machine genre p133 16Mo de RAM devrait normalement plus tourner en faveur de dash/ash (ce serait intéressant de faire le test)