Моя фшоке

Время от времени я играюсь бенчмарком, где надо посчитать числа Фибоначчи несколько странным образом - с генерацией кучи объектов.
Так вот, 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 может существенно ускорить, но он все-таки костыль.
Кроме того я знаю, что под рутом сидеть моветон, но тесты гонялись сразу после установки.

Похожие статьи

  • О портировании Python framework'ов на Jython
  • Кто быстрее?
  • Subversion на CentOS 4.x/5.x и RHEL 4/5. Часть 1 – установка и настройка
  • Март 10, 2011 | Категория: Без рубрики

    Добавить комментарий

    close window

    Service Times & Directions

    Weekend Masses in English

    Saturday Morning: 8:00 am

    Saturday Vigil: 4:30 pm

    Sunday: 7:30 am, 9:00 am, 10:45 am,
    12:30 pm, 5:30 pm

    Weekend Masses In Español

    Saturday Vigil: 6:15pm

    Sunday: 9:00am, 7:15pm

    Weekday Morning Masses

    Monday, Tuesday, Thursday & Friday: 8:30 am

    map
    6654 Main Street
    Wonderland, AK 45202
    (513) 555-7856