ベンチマークを作りました。
元ネタ (http://www.functionalfuture.com/d/)
環境は Duron800MHz, 128MB, FedoraCore1 と 1.91 の中間 (glibc-2.3.3) , linux-2.6.3, gdc-r1f-gcc-3.4.0, dmd-0.82
GDC1 は gdc -O 。 GDC2 は gdc -O3 -fomit-frame-pointer -ffast-math -march=athlon
DMD | GDC1 | GDC2 | |
---|---|---|---|
ackermann(10) | 1.89 | 3.50 | 1.67 |
ary3(100000) | 2.76 | 5.12 | 4.39 |
wc(Phobos's document 100 times) | 2.06 | 1.97 | 1.90 |
except(100000) | 0.26 | 4.37 | 2.92 |
fibo(38) | 3.03 | 3.02 | 2.49 |
matrix(1000) | 1.41 | 1.77 | 2.11 |
sieve(1000) | 4.89 | 6.30 | 6.06 |
hash2-lookup(100000) | 0.279 | 0.251 | 0.253 |
hash2-insert(100000) | 0.614 | 0.567 | 0.575 |
hash3-lookup(100000) | 0.097 | 0.089 | 0.088 |
hash3-insert(100000) | 0.487 | 0.46 | 0.445 |
hash3-rehash(100000) | 0.117 | 0.117 | 0.117 |
hash については昔悪口を書いた時と同じ考えなので hash2.d, hash3.d を用いて計測しています。
ちなみに他のベンチもソースを全く読んでないので良いベンチかどうかは知りません。
正直もうちょっとぶっちぎって GDC が勝つと予測していたので DMD 案外頑張るなーと思いました。後 GDC の例外は何が起きてるんでしょうね。まあ GDC に対して速度的な意味では安心感が持てたのは良かったです。