2013-02-21 3 views
4

Я просто попытался журчание хэша C# порт ...Почему шум происходит медленнее, чем встроенный метод MD5/SHA1

Однако я очень разочарован его производительность. Он выглядит медленнее, чем встроенный метод Cute MD5/SHA1 computeHash.

Режим отладки в порядке, и шум в этом режиме происходит быстрее. Если вы переключитесь в режим Release, он будет медленнее, чем SHA1 или MD5.

+3

Какая реализация? Например, попробуйте этот вариант - http://blog.teamleadnet.com/2012/08/murmurhash3-ultra-fast-hash-algorithm.html –

+1

Профили? Каковы были результаты? – driis

+0

Если производительность является проблемой, вам может потребоваться реализовать в неуправляемом C++ и либо P/Invoke к ней, либо использовать IJW из C++/CLI. –

ответ

2

Я нашел причину, оно должно быть установлено на 64 или 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 

код Soure:

https://github.com/arisoyang/Murmur3Hash

Смежные вопросы