Написал такой скрипт:
import time
a = 2 + 5
b = (a*10)+50
print(b, time.clock())
import time
a = 2 + 5
b = (a*10)+50
print(b, time.clock())
from threading import *
import random
a = 2 + 5
def print_b():
b = (a*10)+50
print b
t=Timer(random.random()*10,print_b)
t.start()
AlSoloсмешнее всего что в соседнем посте вы спрашивали как написать if … xD
# Импорт Функции 1
from iterativ import iterativ
# Импорт Функции 2
from rekursiv import rekursiv
from time import clock
start1 = clock()
test1 = iterativ(25, 10)
end1 = clock()
start2 = clock()
test2 = rekursiv(25, 10)
end2 = clock()
print("Result (iterativ): ", test1, "\nDie Funktion lief %1.10f Sekunden" % (end1 - start1))
print("\nResult (rekursiv): ", test2, "\nDie Funktion lief %1.10f Sekunden" % (end2 - start2))
Андрей СветловВот еще один велосипед:
на велосипедах собственного изготовления
import time
def time_bike (func):
def time_gear(*arg_list, **arg_dict):
take_the_mark = time.clock()
func(*arg_list, **arg_dict)
halt = time.clock()
time_gear.my_record = halt - take_the_mark
return time_gear
if __name__ == '__main__' :
@time_bike
def any_func(x):
return range(x)
any_func(1000000)
print any_func.my_record
class AnyClass :
@time_bike
def any_method(self,x):
return range(x)
inst = AnyClass()
inst.any_method(1000000)
print inst.any_method.my_record
Андрей Светлов=D Алаверды любителям “мы продаем автомобили любого цвета, если этот цвет черный”
Любителям велосипедов посвящается…
Андрей Светлов1. Этот трюизм, не делает timeit универсальным.
Модуль timeit появился не на пустом месте.
Андрей Светлов1. reduce и map do time it многократно
многократный запуск тестируемого кода
Андрей СветловИли медиана? У нас ведь будет что-то вроде Пуассона с выбросами на большей стороне, да? А может минимальное лучше, чем среднее? ;) или среднее первого квартиля? или дециля?:) Это бессмысленное утверждение без указания конкретной задачи.
Среднее время гораздо лучше, чем “первый раз”.
Андрей СветловПо-моему, только текст с кодом, или нет? Как раз для отдельных функций и, тем более, методов классов timeit не очень удобен (чисто с эстетической точки зрения, то есть на мой вкус =) ).
возможность указывать как функции, так и текст с кодом (будет откомпилирован)
Андрей СветловОпять же - зависит от целей:
time.clock хорош только на windows
Из документации
On Unix, return the current processor time as a floating point number expressed in seconds. The precision, and in fact the very definition of the meaning of “processor time”, depends on that of the C function of the same name, but in any case, this is the function to use for benchmarking Python or timing algorithms.
Андрей СветловВсе правильно, только иногда проще сделать самому, чем прилаживать чужие решения к своим задачам. Особенно если задача на десяток строчек.
Для замера скорости выполнения “просто функции” всё уже придумали до нас.