diff --git a/AaruBenchmark/Benchs.cs b/AaruBenchmark/Benchs.cs index 7dbfec9..d169f00 100644 --- a/AaruBenchmark/Benchs.cs +++ b/AaruBenchmark/Benchs.cs @@ -33,6 +33,9 @@ namespace AaruBenchmark [Benchmark(Baseline = true)] public void Aaru() => Checksums.Aaru.Adler32(); + [Benchmark] + public void Aaru6() => Checksums.Aaru6.Adler32(); + [Benchmark] public void AaruNative() => Checksums.AaruNative.Adler32(); } @@ -43,6 +46,9 @@ namespace AaruBenchmark [Benchmark(Baseline = true)] public void Aaru() => Checksums.Aaru.Fletcher16(); + [Benchmark] + public void Aaru6() => Checksums.Aaru6.Fletcher16(); + [Benchmark] public void AaruNative() => Checksums.AaruNative.Fletcher16(); } @@ -53,6 +59,9 @@ namespace AaruBenchmark [Benchmark(Baseline = true)] public void Aaru() => Checksums.Aaru.Fletcher32(); + [Benchmark] + public void Aaru6() => Checksums.Aaru6.Fletcher32(); + [Benchmark] public void AaruNative() => Checksums.AaruNative.Fletcher32(); } @@ -63,6 +72,9 @@ namespace AaruBenchmark [Benchmark(Baseline = true)] public void Aaru() => Checksums.Aaru.Crc16Ccitt(); + [Benchmark] + public void Aaru6() => Checksums.Aaru6.Crc16Ccitt(); + [Benchmark] public void AaruNative() => Checksums.AaruNative.Crc16Ccitt(); } @@ -73,6 +85,9 @@ namespace AaruBenchmark [Benchmark(Baseline = true)] public void Aaru() => Checksums.Aaru.Crc16(); + [Benchmark] + public void Aaru6() => Checksums.Aaru6.Crc16(); + [Benchmark] public void AaruNative() => Checksums.AaruNative.Crc16(); } @@ -83,6 +98,9 @@ namespace AaruBenchmark [Benchmark(Baseline = true)] public void Aaru() => Checksums.Aaru.Crc32(); + [Benchmark] + public void Aaru6() => Checksums.Aaru6.Crc32(); + [Benchmark] public void AaruNative() => Checksums.AaruNative.Crc32(); @@ -96,6 +114,9 @@ namespace AaruBenchmark [Benchmark(Baseline = true)] public void Aaru() => Checksums.Aaru.Crc64(); + [Benchmark] + public void Aaru6() => Checksums.Aaru6.Crc64(); + [Benchmark] public void AaruNative() => Checksums.AaruNative.Crc64(); } @@ -171,6 +192,9 @@ namespace AaruBenchmark [Benchmark(Baseline = true)] public void Aaru() => Checksums.Aaru.SpamSum(); + [Benchmark] + public void Aaru6() => Checksums.Aaru6.SpamSum(); + [Benchmark] public void AaruNative() => Checksums.AaruNative.SpamSum(); diff --git a/AaruBenchmark/Checksums/Aaru6.cs b/AaruBenchmark/Checksums/Aaru6.cs index 861540b..f7d0c94 100644 --- a/AaruBenchmark/Checksums/Aaru6.cs +++ b/AaruBenchmark/Checksums/Aaru6.cs @@ -221,5 +221,20 @@ namespace AaruBenchmark.Checksums if(result.Where((t, i) => t != _expectedRandomCrc64[i]).Any()) throw new Exception("Invalid hash value"); } + + public static void SpamSum() + { + byte[] data = new byte[1048576]; + + var fs = new FileStream(Path.Combine("/mnt/DiscImageChef", "Checksum test files", "random"), FileMode.Open, + FileAccess.Read); + + fs.Read(data, 0, 1048576); + fs.Close(); + fs.Dispose(); + IChecksum ctx = new SpamSumContext(); + ctx.Update(data); + string result = ctx.End(); + } } } \ No newline at end of file