首先,要清楚,我知道C++中存在大量的MD5實現。這裏的問題是我想知道是否比其他實現更快。由於我在尺寸大於10GB的文件上使用了這種MD5哈希函數,所以速度的確是這裏的一個主要問題。在C++中快速實現MD5
5
A
回答
9
我認爲這一點avakar是想說明的是:用現代的處理能力的IO速度您的硬盤驅動器不是散列計算的瓶頸。獲得更高效的算法不會對您有所幫助,因爲這不是最可能的最慢點。
如果你正在做任何特殊的事情(例如1000輪),那麼它可能會不同,但如果你只是計算一個文件的散列。你需要加快你的IO,而不是你的數學。
2
我確信有很多CUDA/OpenCL適應算法在那裏應該給你一個確定的加速。你也可以採用基本的算法並思考一下 - > CUDA/OpenCL的實現。
塊密碼是這種類型實現的最佳人選。
你也可以得到它的C實現並獲取英特爾C編譯器的副本,看看它有多好。英特爾CPU中的矢量化擴展對於提升速度來說是驚人的。
1
3
相關問題
- 1. C++庫中的快速漸變實現?
- 2. C++中的快速排序實現
- 3. 快速ArcSin實現或在c近似#
- 4. JavaScript中最快的MD5實現
- 5. Md5在C語言中的實現POS
- 6. 3路快速排序(C實現)
- 7. 並行快速排序C實現
- 8. 快速log2(float x)實現C++
- 9. 在Linux中快速實現「GetCurrentThreadId」
- 10. 快速排序python實現
- 11. 快速求冪的實現
- 12. 快速存儲桶實現
- 13. 實現快速排序
- 14. 快速排序實現
- 15. 難以在c#中實現快速排序
- 16. 嘗試在c分類結構中實現快速排序
- 17. 在C中使用快速排序實現的段錯誤
- 18. C/C++中的pow()函數的快速實現/近似
- 19. Silverlight MD5實現
- 20. CRAM-MD5實現
- 21. PHP MD5實現
- 22. 蟒蛇中的快速車實現
- 23. 快速排序實現中的ArrayIndexOutofBound
- 24. 快速排序實現中的問題
- 25. Go中的快速排序實現
- 26. 快速實現發現的人數
- 27. Java中的MD5實現
- 28. C++中的快速排序實現(測試失敗)
- 29. 如何從obj-c協議中快速實現此方法?
- 30. 快速驗證md5哈希密碼
你有這些超現代,比SSD更快的驅動器,不是嗎? – avakar
This [question](http://stackoverflow.com/questions/2717216/what-hash-algorithms-are-parallelizable-optimizing-the-hashing-of-large-files-u)可能會有所幫助。我會建議你可以並行化的東西,但我想這取決於你的數據如何存儲。 – Vlad
@avakar:如果數據被複制,如果系統允許的話,通過並行運行不同副本來加快計算速度至少應該是合理的。 – Vlad