シェルの実行速度比較
シェルの動作速度比較をしてみた。
VMware 上の Fedora 9 (x64) なのでシステムコードの実行時間が本来よりかなり長くなっているはずだが、速いか遅いかの比較くらいはできよう。
shell | real | user | sys |
---|---|---|---|
ulimit を 1000 回 | |||
yash | 0.021 | 0.011 | 0.009 |
dash | 0.007 | 0.001 | 0.006 |
bash | 0.014 | 0.006 | 0.007 |
zsh | 5.774 | 2.202 | 3.416 |
ksh | 0.015 | 0.007 | 0.006 |
mksh | 0.009 | 0.005 | 0.003 |
(ulimit) を 1000 回 | |||
yash | 1.896 | 0.412 | 1.138 |
dash | 1.161 | 0.523 | 0.761 |
bash | 2.399 | 0.526 | 1.626 |
zsh | 6.428 | 2.442 | 3.753 |
ksh | 0.029 | 0.016 | 0.011 |
mksh | 1.523 | 0.415 | 0.992 |
/bin/echo 1234567890 を 1000 回 | |||
yash | 3.327 | 0.899 | 2.150 |
dash | 2.790 | 1.044 | 1.714 |
bash | 3.120 | 1.151 | 2.029 |
zsh | 3.540 | 1.108 | 2.257 |
ksh | 2.087 | 0.392 | 1.320 |
mksh | 3.269 | 0.779 | 2.279 |
1000 回起動 (引数は -c ':' ) | |||
yash | 4.530 | 1.205 | 3.062 |
dash | 3.499 | 0.970 | 2.237 |
bash | 5.658 | 2.066 | 3.253 |
zsh | 7.046 | 1.985 | 4.652 |
ksh | 6.028 | 1.876 | 3.841 |
mksh | 3.895 | 1.368 | 2.232 |
それぞれ、組込みコマンドだけの速度、fork するが exec しない場合の速度、fork と exec をする場合の速度、シェル自身の起動時間の測定を意図している。いくつか意図に反した動作をしているものも見受けられるが……。
Dash は bash より速いとされているが、ksh の速さに比べれば大したことはない。寧ろ dash の長所は (mksh にも言えることだが) 動的リンクしているライブラリが少ない分起動が速いことだ。
Yash はどちらかというと遅いほうだが、もともと速度は重視していないので云云。
| 固定リンク
コメント