From f9acd24ab7577480414e2e9eb8bb577f353c0236 Mon Sep 17 00:00:00 2001 From: Alex Peck Date: Thu, 11 Nov 2021 10:36:56 -0800 Subject: [PATCH 1/2] cyclebench --- BitFaster.Caching.Benchmarks/Lru/Cycle.cs | 57 +++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 BitFaster.Caching.Benchmarks/Lru/Cycle.cs diff --git a/BitFaster.Caching.Benchmarks/Lru/Cycle.cs b/BitFaster.Caching.Benchmarks/Lru/Cycle.cs new file mode 100644 index 00000000..414f3692 --- /dev/null +++ b/BitFaster.Caching.Benchmarks/Lru/Cycle.cs @@ -0,0 +1,57 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using BenchmarkDotNet.Attributes; +using BitFaster.Caching.Lru; + +namespace BitFaster.Caching.Benchmarks.Lru +{ + [DisassemblyDiagnoser(printSource: true)] + [MemoryDiagnoser] + public class LruCycleBench + { + private static readonly ClassicLru classicLru = new(8, 9, EqualityComparer.Default); + private static readonly ConcurrentLru concurrentLru = new(8, 9, EqualityComparer.Default); + private static readonly ConcurrentTLru concurrentTlru = new(8, 9, EqualityComparer.Default, TimeSpan.FromMinutes(10)); + private static readonly FastConcurrentLru fastConcurrentLru = new(8, 9, EqualityComparer.Default); + private static readonly FastConcurrentTLru fastConcurrentTLru = new(8, 9, EqualityComparer.Default, TimeSpan.FromMinutes(1)); + + [Benchmark()] + public void FastConcurrentLru() + { + Func func = x => x; + + for (int i = 0; i < 128; i++) + fastConcurrentLru.GetOrAdd(i, func); + } + + [Benchmark()] + public void ConcurrentLru() + { + Func func = x => x; + + for (int i = 0; i < 128; i++) + concurrentLru.GetOrAdd(i, func); + } + + [Benchmark()] + public void FastConcurrentTLru() + { + Func func = x => x; + + for (int i = 0; i < 128; i++) + fastConcurrentTLru.GetOrAdd(i, func); + } + + [Benchmark()] + public void ConcurrentTLru() + { + Func func = x => x; + + for (int i = 0; i < 128; i++) + concurrentTlru.GetOrAdd(i, func); + } + } +} From 4fc7a198ca8735c9a0e1a8437a0085c9681f43f9 Mon Sep 17 00:00:00 2001 From: Alex Peck Date: Thu, 11 Nov 2021 10:40:10 -0800 Subject: [PATCH 2/2] rename --- BitFaster.Caching.Benchmarks/Lru/{Cycle.cs => LruCycleBench.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename BitFaster.Caching.Benchmarks/Lru/{Cycle.cs => LruCycleBench.cs} (100%) diff --git a/BitFaster.Caching.Benchmarks/Lru/Cycle.cs b/BitFaster.Caching.Benchmarks/Lru/LruCycleBench.cs similarity index 100% rename from BitFaster.Caching.Benchmarks/Lru/Cycle.cs rename to BitFaster.Caching.Benchmarks/Lru/LruCycleBench.cs