32ビットを超える整数UbuntuのPythonが速かったが、そうでない場合はどうだろう。簡単な例で確かめてみる。
#!/usr/bin/python import sys import time def H(n): return sum(n / k for k in xrange(1, n + 1)) t0 = time.clock() print H(10 ** 8) print >>sys.stderr, time.clock() - t0
Python(Win) 7.4sec PyPy(Win) 1.0sec Python(Ubuntu) 6.0sec PyPy(Ubuntu) 1.6sec
PyPyならWindows版の方が速いようだ。
ついでに浮動小数点数も。
#!/usr/bin/python import sys import time def H(n): s = 0 x = 0.0 for k in xrange(1, n + 1): x += 1.0 s += 1.0 / x return s t0 = time.clock() print H(10 ** 8) print >>sys.stderr, time.clock() - t0
Python(Win) 11.7sec PyPy(Win) 0.4sec Python(Ubuntu) 7.9sec PyPy(Ubuntu) 0.4sec