AO bench を Smalltalk で


[ruby-dev:38080] [Feature:trunk] nested loop construct 経由で、AO bench が流行っている(いた?)のを知ったので Smalltalk でも試してみました。

使用した処理系は Cincom Smalltalk (VisualWorks 7.6 非商用版) 、マシンは Modbook (MacBook改。2.4GHz Core 2 Duo, Vista SP1)で、結果は 65 sec でした。速度としてはまあまあの部類ですね。

Time millisecondsToRun: [AoBench render]   "=> 64657 "

http://squab.no-ip.com/collab/uploads/61/ao.png

ファイルイン用ソースコードAoBench.vw.st



ちなみに、オリジナルの Proce55ing の結果は 6 sec、Ruby1.9 では 270 sec でした。

$ ruby1.9 -v
ruby 1.9.1p0 (2009-01-30 revision 21907) [i386-cygwin]

$ time ruby1.9 ao-render.rb > ao.ppm

real    4m33.315s
user    4m29.725s
sys     0m0.576s


比較のため Squeak Smalltalk で試したところ 220 sec で Ruby1.9 より気持ち速いかなという印象。でも、プロの手でバリバリにチューンされた高性能 VM を持つエンプラ向けの Cincom Smalltalk での 65 sec と比べるとどうしても見劣りがしてしまいますね。^^; 高速化目指して開発中の Cog VM の登場が待たれます。

ファイルイン用ソースコードAoBench.st