Время от времени я играюсь бенчмарком, где надо посчитать числа Фибоначчи несколько странным образом - с генерацией кучи объектов.Так вот, python Фибоначчи сливает по производительности свежему jython-у (2.5.2), который оказался немного шустрее, чем 2.5.1:
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:00:32 2011
102334155
Thu Mar 10 13:04:02 2011
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:12:34 2011
102334155
Thu Mar 10 13:15:53 2011
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:16:57 2011
102334155
Thu Mar 10 13:20:17 2011
root@asm3:/home/miha/tmp# jython fib.py
Thu Mar 10 13:21:15 2011
102334155
Thu Mar 10 13:24:42 2011
а вот python-вариант:
root@asm3:/home/miha/tmp# python fib.py
Thu Mar 10 13:45:48 2011
102334155
Thu Mar 10 13:51:06 2011
root@asm3:/home/miha/tmp# python fib.py
Thu Mar 10 13:52:54 2011
102334155
Thu Mar 10 13:58:24 2011
А вот исходник:
import time
class Fib:
def __init__(self, n):
self._value = n
def value(self):
if(self._value <= 2):
return 1
f1 = Fib(self._value - 1)
f2 = Fib(self._value - 2)
return f1.value() + f2.value()
#
print time.ctime()
print Fib(40).value()
print time.ctime()
Да, я знаю, что psyco может существенно ускорить, но он все-таки костыль.
Кроме того я знаю, что под рутом сидеть моветон, но тесты гонялись сразу после установки.