使用コードは下記。
(import (rnrs)) (define (tak x y z) (if (not (< y x)) y (tak (tak (- x 1) y z) (tak (- y 1) z x) (tak (- z 1) x y)))) (let ((args (command-line))) (let ((n (string->number (cadr args)))) (tak (* n 2) n 0)))
図ったのは以下の3つ。
Sagittarius pre0.1.4
mosh 0.2.6
Ypsilon 0.9.6update3
結果は以下の通り
Sagittarius
real 0m0.725s
user 0m0.702s
sys 0m0.046s
real 0m0.723s
user 0m0.733s
sys 0m0.015s
-------------------
mosh
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance.
real 0m0.794s
user 0m0.780s
sys 0m0.015s
GC Warning: Repeated allocation of very large block (appr. size 69632):
May lead to memory leak and poor performance.
real 0m0.797s
user 0m0.796s
sys 0m0.015s
-------------------
Ypsilon
real 0m0.931s
user 0m0.015s
sys 0m0.030s
real 0m0.920s
user 0m0.015s
sys 0m0.015s
両方とも超えてる!最近施したインストラクションのチューニングが効いてるのかな。
竹内関数だけしかベンチマークとってないのであんまり参考にはならないけど・・・
まじめにベンチマークとろうかな。
追記:
試しにgambitのベンチマークを走らせて見たら爆死した。遅い上に途中でエラーで落ちよる。
まだまだだね(こしまえ風)
No comments:
Post a Comment