diff --git a/BitFaster.Caching.HitRateAnalysis/Arc/Analysis.cs b/BitFaster.Caching.HitRateAnalysis/Arc/Analysis.cs index 9e2d5cc6..4727fbd6 100644 --- a/BitFaster.Caching.HitRateAnalysis/Arc/Analysis.cs +++ b/BitFaster.Caching.HitRateAnalysis/Arc/Analysis.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading.Tasks; using BitFaster.Caching.Lru; +using ConsoleTables; using CsvHelper; namespace BitFaster.Caching.HitRateAnalysis.Arc @@ -33,16 +34,6 @@ public void TestKey(long key) classicLru.GetOrAdd(key, u => 1); } - public void Compare() - { - Console.WriteLine($"Size {concurrentLru.Capacity} Classic HitRate {FormatHits(classicLru.HitRatio)} Concurrent HitRate {FormatHits(concurrentLru.HitRatio)}"); - } - - private static string FormatHits(double hitRate) - { - return string.Format("{0:N2}%", hitRate * 100.0); - } - public static void WriteToFile(string path, IEnumerable results) { using (var writer = new StreamWriter(path)) diff --git a/BitFaster.Caching.HitRateAnalysis/Arc/Runner.cs b/BitFaster.Caching.HitRateAnalysis/Arc/Runner.cs index 636a877d..b44f8b75 100644 --- a/BitFaster.Caching.HitRateAnalysis/Arc/Runner.cs +++ b/BitFaster.Caching.HitRateAnalysis/Arc/Runner.cs @@ -40,11 +40,7 @@ public async Task Run() Console.WriteLine($"Tested {count} keys in {sw.Elapsed}"); - foreach (var a in this.config.Analysis) - { - a.Compare(); - } - + this.config.Analysis.WriteToConsole(); Analysis.WriteToFile(this.config.Name, this.config.Analysis); } } diff --git a/BitFaster.Caching.HitRateAnalysis/Glimpse/Analysis.cs b/BitFaster.Caching.HitRateAnalysis/Glimpse/Analysis.cs index 44d9a61f..e3c8964d 100644 --- a/BitFaster.Caching.HitRateAnalysis/Glimpse/Analysis.cs +++ b/BitFaster.Caching.HitRateAnalysis/Glimpse/Analysis.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading.Tasks; using BitFaster.Caching.Lru; +using ConsoleTables; using CsvHelper; namespace BitFaster.Caching.HitRateAnalysis.Glimpse @@ -33,16 +34,6 @@ public void TestKey(long key) this.classicLru.GetOrAdd(key, u => 1); } - public void Compare() - { - Console.WriteLine($"Size {this.concurrentLru.Capacity} Classic HitRate {FormatHits(this.classicLru.HitRatio)} Concurrent HitRate {FormatHits(this.concurrentLru.HitRatio)}"); - } - - private static string FormatHits(double hitRate) - { - return string.Format("{0:N2}%", hitRate * 100.0); - } - public static void WriteToFile(string path, IEnumerable results) { using (var writer = new StreamWriter(path)) diff --git a/BitFaster.Caching.HitRateAnalysis/Glimpse/Runner.cs b/BitFaster.Caching.HitRateAnalysis/Glimpse/Runner.cs index 106379a7..a14b543d 100644 --- a/BitFaster.Caching.HitRateAnalysis/Glimpse/Runner.cs +++ b/BitFaster.Caching.HitRateAnalysis/Glimpse/Runner.cs @@ -34,12 +34,7 @@ public static async Task Run() } Console.WriteLine($"Tested {count} keys in {sw.Elapsed}"); - - foreach (var a in analysis) - { - a.Compare(); - } - + analysis.WriteToConsole(); Analysis.WriteToFile("results.glimpse.csv", analysis); } } diff --git a/BitFaster.Caching.HitRateAnalysis/ResultExtensions.cs b/BitFaster.Caching.HitRateAnalysis/ResultExtensions.cs new file mode 100644 index 00000000..541cdc63 --- /dev/null +++ b/BitFaster.Caching.HitRateAnalysis/ResultExtensions.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using ConsoleTables; + +namespace BitFaster.Caching.HitRateAnalysis +{ + public static class ResultExtensions + { + public static void WriteToConsole(this IEnumerable results) + { + ConsoleTable + .From(results) + .Configure(o => o.NumberAlignment = Alignment.Right) + .Write(Format.MarkDown); + } + } +} diff --git a/BitFaster.Caching.HitRateAnalysis/Wikibench/Analysis.cs b/BitFaster.Caching.HitRateAnalysis/Wikibench/Analysis.cs index 417c774a..65505617 100644 --- a/BitFaster.Caching.HitRateAnalysis/Wikibench/Analysis.cs +++ b/BitFaster.Caching.HitRateAnalysis/Wikibench/Analysis.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading.Tasks; using BitFaster.Caching.Lru; +using ConsoleTables; using CsvHelper; namespace BitFaster.Caching.HitRateAnalysis.Wikibench @@ -33,16 +34,6 @@ public void TestUri(Uri uri) this.classicLru.GetOrAdd(uri, u => 1); } - public void Compare() - { - Console.WriteLine($"Size {this.concurrentLru.Capacity} Classic HitRate {FormatHits(this.classicLru.HitRatio)} Concurrent HitRate {FormatHits(this.concurrentLru.HitRatio)}"); - } - - private static string FormatHits(double hitRate) - { - return string.Format("{0:N2}%", hitRate * 100.0); - } - public static void WriteToFile(string path, IEnumerable results) { using (var writer = new StreamWriter(path)) diff --git a/BitFaster.Caching.HitRateAnalysis/Wikibench/Runner.cs b/BitFaster.Caching.HitRateAnalysis/Wikibench/Runner.cs index cf831581..ffe38631 100644 --- a/BitFaster.Caching.HitRateAnalysis/Wikibench/Runner.cs +++ b/BitFaster.Caching.HitRateAnalysis/Wikibench/Runner.cs @@ -45,12 +45,7 @@ public static async Task Run() } Console.WriteLine($"Tested {count} URIs in {sw.Elapsed}"); - - foreach (var a in analysis) - { - a.Compare(); - } - + analysis.WriteToConsole(); Analysis.WriteToFile("results.wikibench.csv", analysis); } } diff --git a/BitFaster.Caching.HitRateAnalysis/Zipfian/AnalysisResult.cs b/BitFaster.Caching.HitRateAnalysis/Zipfian/AnalysisResult.cs index 2b45b10f..7a1960d6 100644 --- a/BitFaster.Caching.HitRateAnalysis/Zipfian/AnalysisResult.cs +++ b/BitFaster.Caching.HitRateAnalysis/Zipfian/AnalysisResult.cs @@ -34,13 +34,5 @@ public static void WriteToFile(string path, IEnumerable results) csv.WriteRecords(results); } } - - public static void WriteToConsole(IEnumerable results) - { - ConsoleTable - .From(results) - .Configure(o => o.NumberAlignment = Alignment.Right) - .Write(Format.Alternative); - } } } diff --git a/BitFaster.Caching.HitRateAnalysis/Zipfian/Runner.cs b/BitFaster.Caching.HitRateAnalysis/Zipfian/Runner.cs index ff3f15ce..44cca7b6 100644 --- a/BitFaster.Caching.HitRateAnalysis/Zipfian/Runner.cs +++ b/BitFaster.Caching.HitRateAnalysis/Zipfian/Runner.cs @@ -163,7 +163,7 @@ public static void Run() }); } - AnalysisResult.WriteToConsole(results); + results.WriteToConsole(); AnalysisResult.WriteToFile("results.zipf.csv", results); Console.ReadLine();