为什么 murmur 比内置 MD5/SHA1 方法慢

ari*_*iso 5 c# hash

我刚刚尝试了 murmur hash C# 端口...

但我对其表现感到非常失望。它似乎比内置的 C# MD5/SHA1computeHash 方法慢。

调试模式很好,而且在这种模式下杂音速度更快。如果切换到 Release 模式,它会比 SHA1 或 MD5 哈希方法慢。

ari*_*iso 2

我找到原因了,应该设置为x64或anycpu而不是x86

这是测试结果。

Release - Target AnyCPU


Murmur Hash profile...
 test Bytes     :2621440000
 iterations     :10000
 totalSeconds   :**1.787**
 bytesPerSecond :1466950195.85898
 mbitsPerSecond :1398.99272523783





BuildinSHA Hash profile...
 test Bytes     :2621440000
 iterations     :10000
 totalSeconds   :**5.956**
 bytesPerSecond :440134318.334453
 mbitsPerSecond :419.74479516454

Release - Target X86

Murmur Hash profile...
 test Bytes     :2621440000
 iterations     :10000
 totalSeconds   :10.612
 bytesPerSecond :247026008.292499
 mbitsPerSecond :235.582359592914


BuildinSHA Hash profile...
 test Bytes     :2621440000
 iterations     :10000
 totalSeconds   :5.987
 bytesPerSecond :437855353.265408
 mbitsPerSecond :417.571404710205

Release - Target X64



Murmur Hash profile...
 test Bytes     :2621440000
 iterations     :10000
 totalSeconds   :1.732
 bytesPerSecond :1513533487.29792
 mbitsPerSecond :1443.41801385681


BuildinSHA Hash profile...
 test Bytes     :2621440000
 iterations     :10000
 totalSeconds   :5.968
 bytesPerSecond :439249329.758713
 mbitsPerSecond :418.900804289544
Run Code Online (Sandbox Code Playgroud)

源代码:

https://github.com/arisoyang/Murmur3Hash