time.time
Очень простой и вполне рабочий метод на базе time, работает даже во 2 питоне (в 3 есть ещё несколько функций в модуле, с бОльшей точностью)
import time
tt=time.time()
our_func()
print "Seconds: " + time.time()-tt
в windows нужен time.clock
Несколько обёрток
1) класс
import time
class Profiler(object):
def __enter__(self):
self._startTime = time.time()
def __exit__(self, type, value, traceback):
print "Elapsed time: {:.3f} sec".format(time.time() - self._startTime)
в коде
with Profiler() as p:
// your code to be profiled here
2) декоратор
import time
def howlong(f):
def tmp(*args, **kwargs):
t = time.time()
res = f(*args, **kwargs)
need_time = time.time()-t
tmp.__name__ = f.__name__
tmp.__doc__ = f.__doc__
#print u"%s time: %f" % ((f.__doc__), need_time)
print ".",
return need_time
return tmp
в коде
@howlong
def our_func() ...
timeit
Основная функция timeit.Timer
Требует всяких сетапов, более заморочен, но лучше подходит для замеров всяких циклов. Для вычисления работы 1 функции слишком геморно.
Комментариев нет:
Отправить комментарий