python time模块中,有好几组不同的计时器,我今天才顿悟它们存在的意义,特此记录。
time.time和time.time_ns
这可能是我们最常用的time模块的接口。
time.time函数返回系统UNIX时间,time.time_ns以纳秒的形式返回系统UNIX时间。
>>> import time
>>> time.time()
1591235079.9658196
>>> time.time()
1591235083.2702475
>>> time.time_ns()
1591235087053414000
>>> time.time_ns()
1591235089100793500
我的如何获取纳秒的文章中,也是用的time.time_ns函数。
time.monotonic和time.monotonic_ns
monotonic时间是指系统启动后从0开始递增的时间,它不会因为我们调整系统时间而发生回调这种情况。
>>> time.monotonic()
1849435.546
>>> time.monotonic()
1849437.0
>>> time.monotonic_ns()
1849440343000000
>>> time.monotonic_ns()
1849442359000000
time.perf_counter和time.perf_counter_ns
这个计时器记录的是python解释器启动后经过的时间。timeit模块默认就是使用这个计时器来计算时间。
C:\Users\xinli>python
Python 3.7.3 (v3.7.3:ef4ec6ed12, Mar 25 2019, 22:22:05) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import time
>>> time.perf_counter()
5.8445583
>>> time.perf_counter()
8.9713227
>>> time.perf_counter()
11.7148052
>>> time.perf_counter_ns()
14650963900
>>> time.perf_counter_ns()
16739663700
time.process_time和time.process_time_ns
这个计时器记录的是CPU时间。
>>> time.process_time()
2.59375
>>> time.process_time()
2.59375
>>> time.process_time_ns()
2593750000
>>> time.process_time_ns()
2593750000
time.thread_time和time.thread_time_ns
这两个函数记录线程的CPU时间。
-- EOF --