我有一个具有 n 次乘法(n 次乘法的单次乘法)的 C 程序,并且我发现了另一个具有 n/2 次迭代(1 次乘法 + 2 次加法)的逻辑。我知道两者的复杂度都是 O(n)。但就CPU周期而言。哪个更快?
在您的计算机上测试。或者,查看您的处理器的规格并猜测。
旧逻辑不再适用:在现代处理器上,整数乘法可能非常便宜,在某些较新的 Intel 处理器上,它需要 3 个时钟周期。在这些相同的处理器上,添加是 1 个周期。然而,在现代流水线处理器中,数据依赖性造成的停顿可能会导致添加花费更长的时间。
我的猜测是,如果您正在进行折叠类型操作,则 N 加法 + N/2 乘法比 N 乘法慢,并且我猜测对于映射类型操作则相反。但这只是一个猜测。
测试一下你是否想要真相。
However:大多数如此简单的算法都受内存限制,并且两者的速度相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)