Python 布尔运算与算术运算的计算代价比较
我有一个关于运算成本的一般性问题。最基本的布尔运算比最基本的算术运算在时间上更便宜还是更昂贵。在有边缘情况的情况下,考虑尝试不同输入的随机情况。 更新 为了稍微细化一下这个问题,我想比较一下加法和布尔等于运算的时间复杂度。以下是时间复杂性资源: 从我的理解来看,布尔等于是位运算和运算的乘法,所以这通常会降低效率 我在本地运行了这段python代码,证实了这一点:Python 布尔运算与算术运算的计算代价比较,python,computer-science,Python,Computer Science,我有一个关于运算成本的一般性问题。最基本的布尔运算比最基本的算术运算在时间上更便宜还是更昂贵。在有边缘情况的情况下,考虑尝试不同输入的随机情况。 更新 为了稍微细化一下这个问题,我想比较一下加法和布尔等于运算的时间复杂度。以下是时间复杂性资源: 从我的理解来看,布尔等于是位运算和运算的乘法,所以这通常会降低效率 我在本地运行了这段python代码,证实了这一点: from time import time a = time() for i in range(1000000): 26
from time import time
a = time()
for i in range(1000000):
26 == 25
print(time() - a)
## 0.040122032165527344
a = time()
for i in range(1000000):
26 + 25
print(time() - a)
## 0.031081438064575195
更新稍微更改上面的代码以使布尔等于更有效实际上,比较通常在硬件中实现,因此成本与算术运算相同
实际上,比较通常在硬件中实现,因此成本与算术运算相同
您必须在特定的机器上进行测试才能确定。除非您正在编写关键的内核代码,否则差异可能非常小,您永远不会注意到它。如果您试图梳理CPU级别的差异,那么试图通过Python解释器达到这一点就是试图使用标尺测量微米。它并不是一种具有你想要的精度的仪器,而你试图将事情“放大”到你想要测量的范围所得到的噪音(来自垃圾收集、操作系统中断等)将压倒信号。你必须在特定的机器上进行测试才能确定。除非您正在编写关键的内核代码,否则差异可能非常小,您永远不会注意到它。如果您试图梳理CPU级别的差异,那么试图通过Python解释器达到这一点就是试图使用标尺测量微米。它并不是一种具有你想要的精度的仪器,你试图将事情“放大”到你想要测量的范围的噪音(来自垃圾收集、操作系统中断等)将压倒信号。