python进行毫秒级计时时遇到的一个精度问题

在用python进行计时时,遇到了一个精度问题。
环境为win10+python3,使用的计时函数是time.time()函数,经测试发现这种方法的精度在15毫秒左右。
例如如下代码:

l = []
for i in range(100):
    t1 = time.time()
    for j in range(1000*100):
        a = 1 + 2
    t2 = time.time()
    l.append(t2-t1)

执行之后的时间如下图:
python进行毫秒级计时时遇到的一个精度问题

可以看到,用这种方法计时的精度大概是15毫秒。
查阅资料可知,这是由于windows系统函数的精度问题。
比如GetTickCount64函数,精度就与系统的timer精度有关,一般在10毫秒到16毫秒之间。

参考资料:
GetTickCount64

相关推荐