《.NET 下最快比较两个文件内容是否相同》之我的看法验证
💡
原文中文,约5700字,阅读约需14分钟。
📝
内容提要
本文比较了五种文件对比方式的性能,包括MD5、Hash256、缓存长度读取比较、缓存长度读取(Span)比较和CRC。作者测试了三个不同大小的文件,发现在文件大小不同的情况下,不同的对比方式差别较大,特别是在大文件的情况下。作者建议根据文件大小与各种对比方法之间的关系,找到一个函数映射关系,从而找到一个最优的对比方法。作者还提到了Github采用Hash256在获取指纹上的速度相对稳定,因此用它来对比文件或提取指纹应该是最佳之选。
🎯
关键要点
- 本文比较了五种文件对比方式的性能,包括MD5、Hash256、缓存长度读取比较、缓存长度读取(Span)比较和CRC。
- 测试了三个不同大小的文件,发现不同对比方式在文件大小不同的情况下差别较大,特别是在大文件的情况下。
- 建议根据文件大小与各种对比方法之间的关系,找到一个函数映射关系,以确定最优的对比方法。
- Github采用Hash256在获取指纹上的速度相对稳定,因此用它来对比文件或提取指纹是最佳选择。
- 测试结果显示,文件越大,MD5和Hash256的效果更好;而文件小于1G时,FileSize_Span方式表现更优。
- 环境因素可能影响测试结果,因此在同一台机器上的多次测试是合理的。
- Span方式值得借鉴和学习,其他细节优化尚未验证。
➡️