需要使用非缓存的比较方式)
不依赖第三方库
越快越好
为了选出最优的解决方案,我搭建了一个简单的命令行工程,准备了两个大小为912MB的文件,并且这两个文件内容完全相同.在本文的最后,你可以看到该工程的...那么优化的方向就变为了如何减少IO操作带来的损耗.
既然每次8个字节太少了,我们定义一个大一些的字节数组,比如1024个字节.每次读取1024个字节到数组中,然后进行字节数组的比较....Elapsed: 00:00:08.2174360
竟然比前两个都要慢(实际这也是所有方案中最慢的一个),LINQ的SequenceEqual看来不是为了效率而生....同样.NET CORE也在为了编写高性能代码而不断的优化中.
那么,我们如何继续优化我们的代码呢?...我突然想到在C# 7.2中加入的一个新的值类型: Span,它用来代表一段连续的内存区域,并提供一系列可操作该区域的方法.