2008年9月16日火曜日

python VM v.s. V8

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
どういうわけだか、v8は圧倒的に速いです。
おそらく、関数呼び出しをいじっているのでしょう。

[nori@Asama]~/Desktop/work/packaging/v8/fromGoogle% time python test.py
102334155
python test.py 142.48s user 0.02s system 99% cpu 2:22.58 total
[nori@Asama]~/Desktop/work/packaging/v8/fromGoogle% time ./v8 test.js
102334155

./v8 test.js 6.87s user 0.00s system 99% cpu 6.879 total


test.py

def fib(n):
if n < 0:
return 0
elif n == 1:
return 1
return fib(n-1) + fib(n-2)

print fib(40)


test.js(test.pyより自動生成)

function len(s) {
return s.length;
}

function dict() {
var arr = new Array();
for (var i=0;i arr[dict.arguments[i]] = dict.arguments[i+1]
}
arr.toString = function() {
var result = "";
for (var key in arr)
{
if (result.length) result += ", "
result += String(key) + ": " + String(arr[key])
}
return "{" + result + "}";
}
return arr;
}
function fib(n) {
if (n < 0) {
return 0;
} else if (n == 1) {
return 1;
} else {
}
return fib(n - 1) + fib(n - 2);
}
print( String(fib(40)), ' ', "\n");

0 件のコメント: