为什么 // 计算速度更快 / 计算(或不是)

why are // calculations faster the / calculations(or not)

我只是在试验一些代码,然后我发现了一些对我来说毫无意义的东西

>>> import timeit
>>> timeit.timeit("524288000/1024/1024")
0.05489620000000173
>>> timeit.timeit("524288000//1024//1024")
0.030612500000017917
>>> 

在计算中使用 // 比 / 计算更快

但是当我重复这个结果时:

>>> timeit.timeit("524288000//1024//1024")
0.02494899999999234
>>> timeit.timeit("524288000/1024/1024")
0.02480830000001788

现在/比//更快,这对我来说毫无意义

这是为什么?

编辑:

重复次数为10000次的实验结果是这样的结果:

avg for /: 0.0261193088
avg for //: 0.025788395899999896

当您为一个函数计时时,CPU 会计算指令完成时间和指令开始时间之间的差值,但在幕后发生了很多事情,而不仅仅是您使用的算法时机。

尝试阅读一些有关操作系统的书籍,您会更好地理解。

为了进行此类实验,您应该将此算法重复数千次以避免出现变化。

尝试下面的代码,但如果您想进行真正的实验,请将循环值更改为更大的值

import timeit

loops = 100    

oneSlashAvg = 0
for i in range(loops):
    oneSlashAvg += timeit.timeit("524288000/1024/1024")
print(oneSlashAvg/loops)

doubleSlashAvg = 0
for i in range(loops):
    doubleSlashAvg += timeit.timeit("524288000//1024//1024")
print(doubleSlashAvg/loops)