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