Fri, 08 Jun 2007
sh, awk, python - forkは遅いけど
awkが遅いなんて言ったら 斉藤さん が全力で弁護してくれますよ.たぶん.
from Dan-san: http://blog.livedoor.jp/dankogai/archives/50847769.html
builtin read:
% time sh builtin.sh
The name of this job. :sh builtin.sh
CPU seconds spent in user mode. :0.12s
CPU seconds spent in kernel mode. :0.07s
Elapsed time in seconds. :0.19s
The CPU percentage. :98%
exec awk:
% time sh awk.sh
The name of this job. :sh awk.sh
CPU seconds spent in user mode. :0.50s
CPU seconds spent in kernel mode. :1.40s
Elapsed time in seconds. :1.89s
The CPU percentage. :100%
Python:
% cat builtin.py
#!/usr/bin/python
s = "aaa,bbb,ccc"
null = open("/dev/null", "w")
for i in range(1000):
print >>null, s.split(",")[1]
% time python builtin.py
The name of this job. :python builtin.py
CPU seconds spent in user mode. :0.01s
CPU seconds spent in kernel mode. :0.00s
Elapsed time in seconds. :0.01s
The CPU percentage. :94%
Pythonが速い.
...いやまてE5310(Quad Core Xeon)ほぼ独り占めの環境だった.凄腕ハカー雇うより機材投資のほうがペイできるよ(身も蓋もない).
それはおいといて,以下GLANTANK(XScale-IOP8032x 400MHz)でやるほうが現実的か.
builtin read:
% time sh builtin.sh
The name of this job. :sh builtin.sh
CPU seconds spent in user mode. :1.92s
CPU seconds spent in kernel mode. :5.40s
Elapsed time in seconds. :7.99s
The CPU percentage. :91%
exec awk:
% time sh awk.sh
The name of this job. :sh awk.sh
CPU seconds spent in user mode. :10.32s
CPU seconds spent in kernel mode. :19.73s
Elapsed time in seconds. :30.05s
The CPU percentage. :99%
Python:
% time python builtin.py
The name of this job. :python builtin.py
CPU seconds spent in user mode. :0.22s
CPU seconds spent in kernel mode. :0.09s
Elapsed time in seconds. :0.31s
The CPU percentage. :99%
bashは遅いかねえ.ただwgetとか鬼みたいなツールを繋げるには shell script使うほうがやっぱり楽ちんだし.
結局,人間がパタパタ手作業やるのに比べたらこんなベンチマークが いかにばかばかしいかってことは火を見るよりも明らかではあるけどあえて釣られ.

