Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 8, 2008 18:15:45

hellt
От:
Зарегистрирован: 2008-03-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

вопросы по модулю timeit

Hi All
можете уточнить, правильно ли я использую timeit для замера скорости выполнения алгоритмов.

Погуляв по ману я реализовал такой метод замера скорости алгоритма

import timeit
s = """\
a = 1
b = 1
total = 0
while b < 10:
if a%2 == 0:
total += a
a,b=b+a,a
"""
t = timeit.Timer(stmt=s)
print "%.4f usec/pass" % ( 1000000*t.timeit(number=100000)/100000)
Не крива ли данная реализация замера скорости выполнения?



Офлайн

#2 Апрель 8, 2008 20:35:18

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

вопросы по модулю timeit

нормально



Офлайн

#3 Апрель 9, 2008 12:01:37

hellt
От:
Зарегистрирован: 2008-03-14
Сообщения: 45
Репутация: +  0  -
Профиль   Отправить e-mail  

вопросы по модулю timeit

Андрей Светлов
нормально
просто приятель переписал алгоритм на .net и замерил .net классом для измерений интервалов..
ладно бы если у него скорость в 10р выше, тут все понятно. Но у него и результаты сравнения алгоритмов иные.

т.е. алгоритм, который у меня проигрывает на всем интервале 32bit целого у него выигрывает

чтобы не быть голословным вот примеры 2го алгоритмов на питоне

from math import *


sq5 = sqrt(5)
fi = (1+sq5)/2.0

def Fib(n):
return int(round(pow(fi, n)/sq5))


def FibRev(f):
return log(sq5*f,fi)

def SumOfEvenValuedFibs(max):
n = floor(FibRev(max))
return Fib(n+2)/2



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version