我试图了解整数乘法与按位运算之间的性能差异......
我有两种潜在的散列算法作用于 64 位键,一种使用单个乘法、单个右移和单个掩码,另一种涉及多个移位和掩码操作......但我想在实施之前尝试比较它们,因为弄清楚神奇的哈希数字需要一些时间才能弄清楚。
在典型的 64 位处理器上,每条 64 位整数乘法指令大约可以执行多少位操作?
我试图了解整数乘法与按位运算之间的性能差异......
我有两种潜在的散列算法作用于 64 位键,一种使用单个乘法、单个右移和单个掩码,另一种涉及多个移位和掩码操作......但我想在实施之前尝试比较它们,因为弄清楚神奇的哈希数字需要一些时间才能弄清楚。
在典型的 64 位处理器上,每条 64 位整数乘法指令大约可以执行多少位操作?
http://lab.polygonal.de/2007/05/10/bitwise-gems-fast-integer-math/
这给出了一般比较......没有指定 64 位或 32 位......但我将使用它作为基线。
每次乘法可能需要 10 位操作,但这并不是那么简单。
您可以将两者重叠:在进行位运算时进行乘法运算。因此,最快的解决方案可能涉及两者兼而有之。
我推荐阅读: http: //www.intel.com/Assets/PDF/manual/248966.pdf
(短篇小说:关于针对英特尔处理器进行优化的 PDF。可能出于您的目的非常接近一般情况)