c# - 逐字节比较文件还是读取所有字节?

标签 c# compare benchmarking checksum

我看到这段代码 http://support.microsoft.com/kb/320348这让我想知道比较 2 个文件以确定它们是否不同的最佳方法是什么。

主要思想是优化我的程序,该程序需要验证任何文件是否相等,以创建已更改文件和/或要删除/创建的文件的列表。

目前我正在比较文件的大小,如果它们匹配我将进入这 2 个文件的 md5 校验和,但是在查看了这个问题开头链接的代码之后,我想知道它是否真的值得使用它来创建 2 个文件的校验和(这基本上是在您获得所有字节之后)?

我还应该做哪些其他验证以减少检查每个文件的工作量?

最佳答案

将两个文件读入一个针对读取优化的小缓冲区(4K 或 8K),然后比较针对优化的内存中的缓冲区(逐字节) em>比较

这将为您提供所有情况下的最佳性能(差异出现在开始、中间或结束处)。

当然,第一步是检查文件长度是否不同,如果是这样,文件确实不同..

关于c# - 逐字节比较文件还是读取所有字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434931/

相关文章:

sql - MySQL 查询成本

javascript - 一个简单的 Node.JS 基准测试

java - 在低级别对 Hadoop 作业进行基准测试

c# - Json 日期时间问题

java - 从大到小排序列表

c# - 数据访问层——模块化和可重用性

python - 使用 Python 比较 CSV 文件的列

javascript - Dart 与 JavaScript 加载时间比较

c# - WPF Dockpanel 超出父级的宽度

c# - 在没有 MVC 的情况下使用 Razor