Tôi đang lập trình trong python trên các cửa sổ và muốn đo chính xác thời gian cần cho một hàm để chạy. Tôi đã viết một hàm "time_it" có chức năng khác, chạy nó và trả về thời gian cần thiết để chạy.Thời gian chính xác của các hàm trong python
def time_it(f, *args):
start = time.clock()
f(*args)
return (time.clock() - start)*1000
tôi gọi 1000 lần này và tính trung bình kết quả. (hằng số 1000 ở cuối là trả lời bằng mili giây.)
Chức năng này có vẻ hoạt động nhưng tôi có cảm giác dai dẳng rằng tôi đang làm điều gì sai, và bằng cách làm theo cách này, tôi đang sử dụng nhiều thời gian hơn chức năng thực sự sử dụng khi hoạt động của nó.
Có cách nào khác hơn hoặc được chấp nhận để thực hiện việc này?
Khi tôi thay đổi chức năng thử nghiệm để gọi in sao cho nó mất nhiều thời gian hơn, hàm time_it của tôi trả về trung bình 2,5 ms trong khi cProfile.run ('f()') trả về và trung bình 7,0 ms. Tôi cho rằng chức năng của tôi sẽ đánh giá quá cao thời gian nếu có gì, chuyện gì đang xảy ra ở đây?
Một lưu ý bổ sung, đó là thời gian tương đối của các hàm so với nhau mà tôi quan tâm, chứ không phải thời gian tuyệt đối vì điều này rõ ràng sẽ thay đổi tùy theo phần cứng và các yếu tố khác.
Bỏ qua tôi - chuỗi đó không phải là tên hàm, nó là một khối mã được đánh giá. Vì vậy, bạn có thể sử dụng nó cho thời gian nhanh chóng. Đây là câu trả lời đúng. Và trong các tin tức khác - "không phải" nhanh hơn đáng kể so với "! =" - nhưng có thể có những tác động khác. –
Và tắt trên đó ốp - trước khi sử dụng "không phải là" cho bất cứ điều gì thông minh - chịu điều này trong tâm trí - http://stackoverflow.com/questions/1392433/python-why-is-hello-is-hello –