toge's diary

コンピュータ関連の趣味をつらつらと。

Shed Skin続き。

昨日に続いてShed Skin評価中。

どふぃぶろぐより、コードをとってきた。
http://ishi.blog2.fc2.com/blog-entry-192.html

def fib(i):
  if i<2:
    return 1
  return fib(i-1) + fib(i-2)

print fib(33); 
#include "bench2.hpp"

namespace __bench2__ {

int __main() {
    print("%d\n", fib(33));
}

int fib(int i) {
    
    if (i<2) {
        return 1;
    }
    return (fib(i-1)+fib(i-2));
}

} // module namespace

int main(int argc, char **argv) {
    __shedskin__::__init();
    __bench2__::__main();
} 

当然コンパイルすると、Python内で閉じているコードなのでやたら早くなります。

% time python bench2.py; time ./bench2
5702887
python bench2.py  7.44s user 0.16s system 97% cpu 7.802 total
5702887
./bench2  0.04s user 0.01s system 76% cpu 0.068 total 

なんと186倍!
まあこれは御祝儀としても・・・、もうちょっとまともなソースを書いてみるか。