Sử dụng trang trí để đo thời gian thực hiện cho các chức năng có thể hữu ích. Có một ví dụ tại http://www.zopyx.com/blog/a-python-decorator-for-measuring-the-execution-time-of-methods.
Dưới đây tôi đã không biết xấu hổ đã dán mã từ trang web được đề cập ở trên để ví dụ tồn tại tại SO trong trường hợp trang web bị xóa khỏi mạng.
import time
def timeit(method):
def timed(*args, **kw):
ts = time.time()
result = method(*args, **kw)
te = time.time()
print '%r (%r, %r) %2.2f sec' % \
(method.__name__, args, kw, te-ts)
return result
return timed
class Foo(object):
@timeit
def foo(self, a=2, b=3):
time.sleep(0.2)
@timeit
def f1():
time.sleep(1)
print 'f1'
@timeit
def f2(a):
time.sleep(2)
print 'f2',a
@timeit
def f3(a, *args, **kw):
time.sleep(0.3)
print 'f3', args, kw
f1()
f2(42)
f3(42, 43, foo=2)
Foo().foo()
// John
Nguồn
2010-04-18 12:33:47
Tương tự như http://stackoverflow.com/questions/889900/accurate-timing-of-functions-in-python –
Cả những chủ đề đã được về thời gian * chức năng *, mà có thể hoặc không thể là những gì được yêu cầu làm "thuật toán thời gian", dường như tôi là một nhiệm vụ không được xác định. Nó có thể đòi hỏi nhiều thứ phức tạp hơn so với thời gian một hàm. –
Ngoài ra, các câu hỏi về thuật toán (miễn là chúng liên quan đến lập trình) chắc chắn được chào đón trên Stack Overflow. –