Skip to content

Commit 6c1eead

Browse files
committed
Minor benchmark updates
1 parent b9cbfbf commit 6c1eead

4 files changed

Lines changed: 27 additions & 11 deletions

File tree

benchmarks/CacheTower.AlternativesBenchmark/CacheAlternatives_File_Benchmark.cs

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
using System.Threading;
44
using System.Threading.Tasks;
55
using BenchmarkDotNet.Attributes;
6-
using CacheTower.Providers.FileSystem.Json;
7-
using CacheTower.Providers.FileSystem.Protobuf;
6+
using CacheTower.Providers.FileSystem;
7+
using CacheTower.Serializers.NewtonsoftJson;
8+
using CacheTower.Serializers.Protobuf;
9+
using CacheTower.Serializers.SystemTextJson;
810
using EasyCaching.Disk;
911

1012
namespace CacheTower.AlternativesBenchmark
@@ -13,17 +15,19 @@ public class CacheAlternatives_File_Benchmark : BaseBenchmark
1315
{
1416
private const string DirectoryPath = "CacheAlternatives/FileCache";
1517

16-
private readonly CacheStack CacheTowerJson;
18+
private readonly CacheStack CacheTowerNewtonsoftJson;
19+
private readonly CacheStack CacheTowerSystemTextJson;
1720
private readonly CacheStack CacheTowerProtobuf;
1821
private DefaultDiskCachingProvider EasyCaching;
1922

2023
public CacheAlternatives_File_Benchmark()
2124
{
22-
CacheTowerJson = new CacheStack(new[] { new JsonFileCacheLayer(DirectoryPath) }, Array.Empty<ICacheExtension>());
23-
CacheTowerProtobuf = new CacheStack(new[] { new ProtobufFileCacheLayer(DirectoryPath) }, Array.Empty<ICacheExtension>());
25+
CacheTowerNewtonsoftJson = new CacheStack(new[] { new FileCacheLayer(new(DirectoryPath, NewtonsoftJsonCacheSerializer.Instance)) }, Array.Empty<ICacheExtension>());
26+
CacheTowerSystemTextJson = new CacheStack(new[] { new FileCacheLayer(new(DirectoryPath, SystemTextJsonCacheSerializer.Instance)) }, Array.Empty<ICacheExtension>());
27+
CacheTowerProtobuf = new CacheStack(new[] { new FileCacheLayer(new(DirectoryPath, ProtobufCacheSerializer.Instance)) }, Array.Empty<ICacheExtension>());
2428
}
2529

26-
private void CleanupFileSystem()
30+
private static void CleanupFileSystem()
2731
{
2832
var attempts = 0;
2933
while (attempts < 5)
@@ -61,16 +65,25 @@ public void Setup()
6165
}
6266

6367
[Benchmark(Baseline = true)]
64-
public async Task<string> CacheTower_JsonFileCacheLayer()
68+
public async Task<string> CacheTower_FileCacheLayer_NewtonsoftJson()
6569
{
66-
return await CacheTowerJson.GetOrSetAsync<string>("GetOrSet_TestKey", (old) =>
70+
return await CacheTowerNewtonsoftJson.GetOrSetAsync<string>("GetOrSet_TestKey", (old) =>
6771
{
6872
return Task.FromResult("Hello World");
6973
}, new CacheSettings(TimeSpan.FromDays(1), TimeSpan.FromDays(1)));
7074
}
7175

7276
[Benchmark]
73-
public async Task<string> CacheTower_ProtobufFileCacheLayer()
77+
public async Task<string> CacheTower_FileCacheLayer_SystemTextJson()
78+
{
79+
return await CacheTowerSystemTextJson.GetOrSetAsync<string>("GetOrSet_TestKey", (old) =>
80+
{
81+
return Task.FromResult("Hello World");
82+
}, new CacheSettings(TimeSpan.FromDays(1), TimeSpan.FromDays(1)));
83+
}
84+
85+
[Benchmark]
86+
public async Task<string> CacheTower_FileCacheLayer_Protobuf()
7487
{
7588
return await CacheTowerProtobuf.GetOrSetAsync<string>("GetOrSet_TestKey", (old) =>
7689
{

benchmarks/CacheTower.AlternativesBenchmark/CacheAlternatives_Redis_Benchmark.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using CacheManager.Core;
55
using CacheTower.AlternativesBenchmark.Utils;
66
using CacheTower.Providers.Redis;
7+
using CacheTower.Serializers.Protobuf;
78
using EasyCaching.Redis;
89
using EasyCaching.Serialization.Protobuf;
910
using ProtoBuf;
@@ -19,7 +20,7 @@ public class CacheAlternatives_Redis_Benchmark : BaseBenchmark
1920

2021
public CacheAlternatives_Redis_Benchmark()
2122
{
22-
CacheTower = new CacheStack(new[] { new RedisCacheLayer(RedisHelper.GetConnection()) }, Array.Empty<ICacheExtension>());
23+
CacheTower = new CacheStack(new[] { new RedisCacheLayer(RedisHelper.GetConnection(), new RedisCacheLayerOptions(ProtobufCacheSerializer.Instance)) }, Array.Empty<ICacheExtension>());
2324
CacheManager = CacheFactory.Build<ProtobufCacheItem>(b =>
2425
{
2526
b.WithRedisConfiguration("redisLocal", "localhost:6379,ssl=false");

benchmarks/CacheTower.AlternativesBenchmark/CacheAlternatives_Redis_Parallel_Benchmark.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using CacheManager.Core;
66
using CacheTower.AlternativesBenchmark.Utils;
77
using CacheTower.Providers.Redis;
8+
using CacheTower.Serializers.Protobuf;
89
using EasyCaching.Redis;
910
using EasyCaching.Serialization.Protobuf;
1011
using ProtoBuf;
@@ -22,7 +23,7 @@ public class CacheAlternatives_Redis_Parallel_Benchmark : BaseBenchmark
2223

2324
public CacheAlternatives_Redis_Parallel_Benchmark()
2425
{
25-
CacheTower = new CacheStack(new[] { new RedisCacheLayer(RedisHelper.GetConnection()) }, Array.Empty<ICacheExtension>());
26+
CacheTower = new CacheStack(new[] { new RedisCacheLayer(RedisHelper.GetConnection(), new RedisCacheLayerOptions(ProtobufCacheSerializer.Instance)) }, Array.Empty<ICacheExtension>());
2627
CacheManager = CacheFactory.Build<ProtobufCacheItem>(b =>
2728
{
2829
b.WithRedisConfiguration("redisLocal", "localhost:6379,ssl=false");

benchmarks/CacheTower.AlternativesBenchmark/CacheTower.AlternativesBenchmark.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
<ProjectReference Include="..\..\src\CacheTower.Providers.FileSystem.Json\CacheTower.Providers.FileSystem.Json.csproj" />
2626
<ProjectReference Include="..\..\src\CacheTower.Providers.FileSystem.Protobuf\CacheTower.Providers.FileSystem.Protobuf.csproj" />
2727
<ProjectReference Include="..\..\src\CacheTower.Providers.Redis\CacheTower.Providers.Redis.csproj" />
28+
<ProjectReference Include="..\..\src\CacheTower.Serializers.SystemTextJson\CacheTower.Serializers.SystemTextJson.csproj" />
2829
<ProjectReference Include="..\..\src\CacheTower\CacheTower.csproj" />
2930
</ItemGroup>
3031

0 commit comments

Comments
 (0)