Derniers journaux de mat_ :
- [07/08@08:29] que suis je
- [29/07@16:55] bash 3
- [08/05@11:24] paquet debian inofficiel Xfree
- [08/04@07:37] X11R6.7.0 : le remplacant de Xfree?
- [05/04@19:07] microsoft fait de l'open source
- [14/03@20:59] submount ???
- [12/03@15:04] bittorrent 3.4.1
- [22/02@09:37] microsoft a encore frapper
- [12/02@13:08] limiter la memoire pour un utilisateur
- [03/02@18:58] simpleinit
- [17/01@13:11] free c'est bien quand ca marche, mais sinon...
- [03/01@12:50] detecter la demande d'ejection quand un cd est montee
- [31/12@17:56] kernel 2.6.1 rc1
- [18/12@11:42] mplayer : migration des serveurs debian -> slackware
- [30/11@18:25] premiere beta d'xvid 1.0 disponible
- [29/11@19:08] equivalent de e2label
- [24/11@13:09] du nouveau du coté des serveurs jabber
- [03/10@22:27] j'ai faillit faire une grosse boullette...
- [21/09@20:11] test
- [12/09@17:42] Recherche carte PCI UDMA133
Journal : dash vs bash
Posté par Matthieu C () le 07 août 2004sous bash :
date;for i in $(seq 100000); do echo $i > /dev/null;done;date
sam aoû 7 10:33:01 CEST 2004
sam aoû 7 10:33:13 CEST 2004
sous dash
date;for i in $(seq 100000); do echo $i > /dev/null;done;date
sam aoû 7 10:33:21 CEST 2004
sam aoû 7 10:33:25 CEST 2004
Et en plus a la fin dash libere vraiement la memoire...
ps v
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
2915 pts/0 Ss 0:11 8 625 14286 12200 1.1 -bash
3343 pts/1 S+ 0:04 0 77 1774 824 0.0 dash
3350 pts/0 R+ 0:00 0 62 2265 676 0.0 ps v
idem pour
date;i=0;while true; do if [ $i = 100000 ] ;then break; fi ;echo $i > /dev/null; i=$(($i+1));done;date
sous bash
sam aoû 7 10:38:36 CEST 2004
sam aoû 7 10:39:03 CEST 2004
et dash
sam aoû 7 10:39:14 CEST 2004
sam aoû 7 10:39:23 CEST 2004
bref je suis content d'avoir dash comme lien symbolique vers /bin/sh ...
> Lire le journal (9 commentaires, moyenne: 4,1).
Time
Tes deux dates consécutives, c'est pour mesure le temps d'exécution de la commande ? Si oui, essaye la commande time, qui fait ça un peu mieux :-)
time ta_commande
ça t'affiche trois mesures:
real 0m0.202s
user 0m0.002s
sys 0m0.005s
Et tu as pas mal d'options.
-
[^]Re: Time
Posté par KiKouN (Jabber id, ) le 07/08/2004 à 14:07. (lien). Évalué à 2.J'irai même plus loin en disant que son test n'est pas crédible. En effet, il suffit que je stresse mon système pendant que j'exécute le script avec bash et que je l'exécute avec dash sur un système "au repos" pour fausser les résultats. Il peut aussi être fausser avec un nice éléver
Donc, ce text devrait être refait avec time ou un équivalent.
Exemple: bash sur un système "au repos":
date;for i in $(seq 500000); do echo $i > /dev/null;done;date
sam aoû 7 15:56:54 CEST 2004
sam aoû 7 15:57:07 CEST 2004
Exemple: dash sur un système stressé et avec un nice:
nice -n 18 dash -c 'date;for i in $(seq 500000); do echo $i > /dev/null;done;date'
sam aoû 7 16:01:36 CEST 2004
sam aoû 7 16:02:08 CEST 2004
Avec time sur un système stressé: (les deux scripts contienent le script précédant sans les 'date' )
bash: time tmp/benbash.sh
real 0m23.938s
user 0m9.713s
sys 0m3.645s
dash: time tmp/bendash.sh
real 0m9.846s
user 0m3.986s
sys 0m3.019s--
KiKouN, Bucheron-Geek-
[^]Re: Time
Posté par Matthieu C () le 07/08/2004 à 17:41. (lien). Évalué à 5.Puisqu'on en est dans les details je te signal que tu as utiliser dans ton test 2 commandes 'time' differentes et qui sais elles font peut etre des mesures de facon differentes...
il faut donc utiliser /usr/bin/time dans tes 2 tests pour regler le probleme.
PS : mon journal n'avait pas pour but de donner un bench precis, mais juste une tendance et je voulais surtout montrer que tout ce qui ont argumenter dans l'article que si bash consommais plein de memoire apres un $(seq ....) c'etait bien de la faute de bash et pas comme il a ete dis une feature du noyau ou de la libc....
-
-
[^]Re: Time
Posté par Matthieu C () le 07/08/2004 à 17:27. (lien). Évalué à 2.t'as raison mais j'ai pas la commande time d'installer sur le systeme et dash n'en possede pas une integre...
Euh...
C'est une preuve comme quoi Dash lave plus blanc que Bash ?
(désolé, vraiment désolé...)
En revanche, c'eut été sympathique si tu nous avais indiqué quelles versions de bash et dash tu avais utilisé (en particulier bash: 2 ou 3?), ton protocole de test aurait été plus complet.
Nouvelle rubrique à la mode, bientôt sur linuxfr: le bench de shells en tout genre...
R.I.P Chris Benoit, 1967-2007
-
[^]Re: Euh...
Posté par Matthieu C () le 07/08/2004 à 17:37. (lien). Évalué à 2.$ dpkg -l | grep [bd]ash
ii bash 3.0-4 The GNU Bourne Again SHell
ii dash 0.5.1-2 The Debian Almquist Shell
mais sous bash 2.05 c'etait gere mieux...
Sinon le bench de shell c'est quand meme interessant : ca peut te permettre de booter plus vite en choisisant le bon...-
[^]Re: Euh...
Posté par gnujsa () le 07/08/2004 à 18:57. (lien). Évalué à 8.http://packages.debian.org/testing/shells/dash(...)
[...]
It can be usefully installed as /bin/sh (because it executes scripts somewhat faster than "bash")
[...]
c'est apparement une qualité connue de dash, mais il faut faire attention, car il existe pas mal de script qui, malgrés le « #!/bin/sh », sont en faite remplis de « bachisme » et devraient plutôt commencer par #!/bin/bash. Un moyen de s'enrendre compte et de les éditer avec vim avec la coloration syntaxique d'activée. Les bashismes dans des scripts #!/bin/sh sont notés comme des erreurs, et sont surlignés en rouge
Par exemple:
essayez ce script une fois avec #!/bin/sh comme shebang, puis aprés avec #!/bin/bash:
echo ${toto%azerty}
il faut l'enregistrer, et le réouvrir le avec vim à chaque fois
-
Les journaux sont destinés à des informations qui ne sont pas suffisamment intéressantes
pour être validées en dépêche (sinon n'hésitez pas à proposer votre information en
dépêche), qui sont sans rapport avec Linux ou le libre, ou simplement pour donner votre
avis. Si vous désirez poser une question, merci d'utiliser 

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.