Обычно я использую clock()
или time()
из библиотеки time
. clock
измеряет время переводчика, а time
измеряет системное время. Дополнительные замечания можно найти в документах .
Например,
def fn():
st = time()
dostuff()
print 'fn took %.2f seconds' % (time() - st)
Или же вы можете использовать timeit
. Я часто использую подход time
из-за того, как быстро я могу справиться с этим, но если вы рассчитываете фрагмент кода, способный изолировать, вам пригодится timeit
.
Из документов timeit ,
def test():
"Stupid test function"
L = []
for i in range(100):
L.append(i)
if __name__=='__main__':
from timeit import Timer
t = Timer("test()", "from __main__ import test")
print t.timeit()
Затем, чтобы преобразовать в минуты, вы можете просто разделить на 60. Если вы хотите, чтобы время выполнения скрипта было легко читаемым, будь то секунды или дни, вы можете преобразовать его в timedelta
и str
it:
runtime = time() - st
print 'runtime:', timedelta(seconds=runtime)
и это распечатает что-то вроде [D day[s], ][H]H:MM:SS[.UUUUUU]
. Вы можете ознакомиться с документами timedelta .
И, наконец, если то, что вы на самом деле ищете, профилирует ваш код, Python также предоставляет библиотеку профилей .