25
loading...
This website collects cookies to deliver better user experience
FileComparer
class. I think I commented good enough so it does not need any further explaining :)Method | Mean | Error | StdDev | Ratio |
---|---|---|---|---|
Md5Comparer | 1.302 s | 0.0090 s | 0.0080 s | 1.00 |
ReadWholeFileAtOnce
is almost 7 times faster, but it is not memory efficient. It reads whole file into memory even before doing any comparison! But Can we do better? Of course!Method | Mean | Error | StdDev | Ratio |
---|---|---|---|---|
Md5Comparer | 1,296.4 ms | 11.02 ms | 10.31 ms | 1.00 |
ReadWholeFileAtOnce | 190.2 ms | 2.66 ms | 2.49 ms | 0.15 |
Method | Mean | Error | StdDev | Ratio |
---|---|---|---|---|
Md5Comparer | 1,299.5 ms | 6.09 ms | 5.40 ms | 1.00 |
CompareUsingLinq | 830.0 ms | 1.86 ms | 1.45 ms | 0.64 |
UseSequenceEquals | 805.5 ms | 7.62 ms | 7.13 ms | 0.62 |
ReadWholeFileAtOnce | 190.4 ms | 2.90 ms | 2.71 ms | 0.15 |
FileComparer.cs
.4096 * 1, 4096 * 2, 4096 * 4, 4096 * 8, 4096 * 16, 4096 * 32, 4096 * 64, 4096 * 128
bytes and turns out 4096 * 32
is a good choice.Method | BufferSize | Mean | Ratio |
---|---|---|---|
Md5Comparer | 1,298.1 ms | 1.00 | |
AllFile | 190.6 ms | 0.15 | |
Chunks_One | 131072 | 168.7 ms | 0.13 |
Method | BufferSize | Mean | Ratio |
---|---|---|---|
Md5Comparer | 1,298.1 ms | 1.00 | |
AllFile | 190.6 ms | 0.15 | |
Chunks_One | 131072 | 168.7 ms | 0.13 |
Chunks_Eight | 131072 | 126.9 ms | 0.10 |
Method | BufferSize | Mean | Error | StdDev | Ratio |
---|---|---|---|---|---|
Md5 | 131072 | 1,293.05 ms | 7.763 ms | 6.882 ms | 1.00 |
Vector | 131072 | 81.92 ms | 0.240 ms | 0.188 ms | 0.06 |
Method | BufferSize | Mean | Error | StdDev | Ratio |
---|---|---|---|---|---|
Md5 | 131072 | 1,293.05 ms | 7.763 ms | 6.882 ms | 1.00 |
AVX2 | 131072 | 81.92 ms | 0.240 ms | 0.188 ms | 0.06 |