【发布时间】:2014-07-29 18:09:35
【问题描述】:
在处理器使用方面,基本算术运算是否相同。例如,如果我在循环中进行加法与除法,加法的计算时间会小于除法的计算时间吗?
我不确定这个问题是属于这里还是属于计算机科学 SE
【问题讨论】:
标签: language-agnostic arithmetic-expressions
在处理器使用方面,基本算术运算是否相同。例如,如果我在循环中进行加法与除法,加法的计算时间会小于除法的计算时间吗?
我不确定这个问题是属于这里还是属于计算机科学 SE
【问题讨论】:
标签: language-agnostic arithmetic-expressions
是的。不同的机器指令并不同样昂贵。
您可以自己进行测量,也可以使用this question 中的参考资料之一来帮助您了解各种说明的成本。
【讨论】:
是的。这是一个简单的例子:
这些是大型旧架构 8086 的微码和运行时间。这是一个相当简单的起点。
相关说明,它们以周期或时钟为单位进行测量,并且一切都以 cpu 的速度移动(它们在微处理器的主时钟或频率上同步)
如果您在该表上向下滚动,您会看到一个除法需要 80 到 150 个周期。
还要注意操作速度受操作数所在内存区域的影响。
请注意,在现代处理器上,您可以同时执行并行指令(即使 cpu 是单线程的),其中一些指令是乱序执行的,那么向量指令会使问题更加模糊。
即SSE 乘法可以在一次操作中乘以多个数字(需要多次)
【讨论】: