在计算大文件的md5总和时,我看到单个cpu核心跳转到100%,无论多长时间,让所有其他核心空闲。
我对md5的基本理解是整个过程是完全线性的,其中值依赖于所有先前读取的值,并且我们无法做任何事情来使其成为多线程的。这是真的吗?
或者有没有办法将文件分成多个部分,使用多核计算多个部分的< something> ,然后合并< something> 值到最后的md5?
我们用来计算md5sum的库是http://libmd5-rfc.sourceforge.net/但是如果可以在多个核心中破坏md5sum以便更快完成,我会切换到另一个库。
(注意:改为md5以外的东西不是问题,也不能这样做,因为它接口的其他封闭系统。也不是关于使用md5的安全性的问题。)
答案 0 :(得分:9)
不,你不能在文件级别拆分它。 MD5在数据运行时保持状态。