我想感受一下在相对于位运算整数乘法之间的性能差异...64位整数运算和位运算基准测试
我已经作用于64位密钥的两个潜在的散列算法,一个使用单倍,单右移和单个掩码,另一个涉及多个移位和掩码操作......但我想在实现之前尝试对它们进行比较,因为计算魔法哈希数需要一些时间来计算出。
在典型的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有关英特尔处理器优化可能是你的目的非常接近一般的情况下)。
你可以以此为基准呢? – strager 2010-08-04 20:24:05
回想起来,我可以用一些虚假的乘法器对它进行基准测试......创建真正的哈希函数可能需要很长时间,因为哈希乘法器是通过猜测和检查发现的。 – tbischel 2010-08-04 20:41:49