Tùy thuộc vào loại đồng hồ và hệ điều hành và phần cứng của bạn hay không, bạn thậm chí có thể nhận được độ chính xác nano giây ở tất cả. Từ số time
module documentation:
Độ chính xác của các hàm thời gian thực khác nhau có thể ít hơn đề xuất của giá trị hoặc đối số của chúng. Ví dụ. trên hầu hết các hệ thống Unix, đồng hồ "đánh dấu" chỉ 50 hoặc 100 lần mỗi giây.
Trên Python 3, mô-đun time
cho phép bạn truy cập vào 5 loại đồng hồ khác nhau, mỗi loại có các thuộc tính khác nhau; một số trong số này có thể cung cấp cho bạn thời gian chính xác nano giây. . Sử dụng các time.get_clock_info()
function để xem những tính năng mỗi đồng hồ cung cấp và thời gian chính xác được báo cáo trong
Trên OS X 10.11 máy tính xách tay của tôi, các tính năng có sẵn là:
>>> for name in ('clock', 'monotonic', 'perf_counter', 'process_time', 'time'):
... print(name, time.get_clock_info(name), sep=': ')
...
clock: namespace(adjustable=False, implementation='clock()', monotonic=True, resolution=1e-06)
monotonic: namespace(adjustable=False, implementation='mach_absolute_time()', monotonic=True, resolution=1e-09)
perf_counter: namespace(adjustable=False, implementation='mach_absolute_time()', monotonic=True, resolution=1e-09)
process_time: namespace(adjustable=False, implementation='getrusage(RUSAGE_SELF)', monotonic=True, resolution=1e-06)
time: namespace(adjustable=True, implementation='gettimeofday()', monotonic=False, resolution=1e-06)
nên sử dụng time.monotonic()
hoặc time.perf_counter()
chức năng sẽ về mặt lý thuyết cho tôi độ phân giải nano giây. Cả hai đồng hồ đều không cho tôi thời gian tường, chỉ thời gian trôi qua; các giá trị khác tùy ý. Tuy nhiên, chúng hữu ích khi đo lường khoảng thời gian điều gì đó đã thực hiện.
@GregS: kiên trì đi kèm với tuổi :) – tzot