Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions BitFaster.Caching.HitRateAnalysis/Wikibench/Analysis.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BitFaster.Caching.Lru;
using CsvHelper;

namespace BitFaster.Caching.HitRateAnalysis.Wikibench
{
Expand All @@ -18,6 +21,12 @@ public Analysis(int cacheSize)
this.classicLru = new ClassicLru<Uri, int>(1, cacheSize, EqualityComparer<Uri>.Default);
}

public int CacheSize => this.concurrentLru.Capacity;

public double ConcurrentLruHitRate => this.concurrentLru.HitRatio * 100;

public double ClassicLruHitRate => this.classicLru.HitRatio * 100;

public void TestUri(Uri uri)
{
this.concurrentLru.GetOrAdd(uri, u => 1);
Expand All @@ -33,5 +42,14 @@ private static string FormatHits(double hitRate)
{
return string.Format("{0:N2}%", hitRate * 100.0);
}

public static void WriteToFile(string path, IEnumerable<Analysis> results)
{
using (var writer = new StreamWriter(path))
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(results);
}
}
}
}
2 changes: 2 additions & 0 deletions BitFaster.Caching.HitRateAnalysis/Wikibench/Runner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ public static async Task Run()
{
a.Compare();
}

Analysis.WriteToFile("results.wikibench.csv", analysis);
}
}
}
Expand Down
9 changes: 9 additions & 0 deletions BitFaster.Caching.HitRateAnalysis/results.wikibench.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
CacheSize,ConcurrentLruHitRate,ClassicLruHitRate
25,30.748543935794594,12.339894258281078
50,38.54143501776577,21.441939220308402
75,42.52123346830987,27.84286871100062
100,45.1025591654474,32.25609649363885
125,47.21936919103159,35.30941454952625
150,48.687634020955905,37.484624347754924
175,49.932971822611414,39.10013286561485
200,50.83386468801666,40.35904822418645