public void benchmark() { const int HeapSize = 5000; int[] randomValues = Enumerable.Range(0, 100000).Select(_ => _random.Next()).ToArray(); BenchmarkResult r1 = MicroBenchmark.MeasureTime(() => { BestKeeper <int> sut = new BestKeeper <int>(HeapSize, (n1, n2) => n1 - n2); for (int i = 0; i < randomValues.Length; i++) { sut.Add(randomValues[i]); } }, 100); BenchmarkResult r2 = MicroBenchmark.MeasureTime(() => { OrderedArrayBestKeeper <int> sut = new OrderedArrayBestKeeper <int>(HeapSize, (n1, n2) => n1 - n2); for (int i = 0; i < randomValues.Length; i++) { sut.Add(randomValues[i]); } }, 100); r1.IsSignificantlyBetterThan(r2).Should().BeTrue(); }
public void Benchmarking_CPU_is_less_precise_that_time() { int Fib(int n) { return(n <= 0 ? n : Fib(n - 1) + Fib(n - 2)); } BenchmarkResult r1 = CK.Core.MicroBenchmark.MeasureCPU(() => Fib(10)); BenchmarkResult r2 = CK.Core.MicroBenchmark.MeasureCPU(() => Fib(15)); r1.IsBetterThan(r2).Should().BeTrue(); r1.IsSignificantlyBetterThan(r2).Should().BeTrue(); r1.IsTotallyBetterThan(r2).Should().BeTrue(); }
public void Benchmarking_timed_operations() { int Fib(int n) { return(n <= 0 ? n : Fib(n - 1) + Fib(n - 2)); } BenchmarkResult r1 = CK.Core.MicroBenchmark.MeasureTime(() => Fib(10)); BenchmarkResult r2 = CK.Core.MicroBenchmark.MeasureTime(() => Fib(11)); r1.IsBetterThan(r2).Should().BeTrue(); r1.IsSignificantlyBetterThan(r2).Should().BeTrue(); r1.IsTotallyBetterThan(r2).Should().BeTrue(); }