Jitbit.FastCache
1.0.1
See the version list below for details.
dotnet add package Jitbit.FastCache --version 1.0.1
NuGet\Install-Package Jitbit.FastCache -Version 1.0.1
<PackageReference Include="Jitbit.FastCache" Version="1.0.1" />
<PackageVersion Include="Jitbit.FastCache" Version="1.0.1" />
<PackageReference Include="Jitbit.FastCache" />
paket add Jitbit.FastCache --version 1.0.1
#r "nuget: Jitbit.FastCache, 1.0.1"
#:package Jitbit.FastCache@1.0.1
#addin nuget:?package=Jitbit.FastCache&version=1.0.1
#tool nuget:?package=Jitbit.FastCache&version=1.0.1
FastCache
6x-10x faster alternative to MemoryCache
TL;DR
Bascially it's just a ConcurrentDictionary with expiration.
Why FastCache is better than System.Runtime.Caching.MemoryCache and Microsoft.Extensions.Caching.MemoryCache.
- 6X faster read times than MemeoryCache.
- 10x faster wites than MemoryCache
- Thread safe and atomic writes
- MemoryCache's come with performnce counters that can't be turned off
Usage
var cache = new FastCache<string, int>();
cache.AddOrUpdate("key", 42, TimeSpan.FromMinutes(1));
cache.TeyGet("key", out int value);
cache.GetOrAdd("key", k => 1024, TimeSpan.FromMilliseconds(100));
Tradeoffs
FastCache uses Environment.TickCount which is 26x times faster tham DateTime.Now. But Environment.TickCount is limited to Int32. Which means it reset to int.MinValue once overflowed. In practice this means you cannot cache stuff for more than ~25 days (2.4 billion milliseconds).
Another tradeoff: MemoryCache watches the used memory, and evicts items once it senses memory pressure. FastCache does not do that it is up to you. It's just a dictionary.
Benchmarks
| Method | Mean | Error | StdDev | Gen0 | Allocated |
|--------------------- |----------:|----------:|---------:|-------:|----------:|
| FastCacheLookup | 67.15 ns | 2.582 ns | 0.142 ns | - | - |
| MemoryCacheLookup | 426.60 ns | 60.162 ns | 3.298 ns | 0.0200 | 128 B |
| FastCacheAddRemove | 99.97 ns | 12.040 ns | 0.660 ns | 0.0254 | 160 B |
| MemoryCacheAddRemove | 710.70 ns | 32.415 ns | 1.777 ns | 0.0515 | 328 B |
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Jitbit.FastCache:
| Package | Downloads |
|---|---|
|
Wikiled.Text.Analysis
Text Analysis Library |
|
|
NeoCaptcha.AspnetCore
Package Description |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Jitbit.FastCache:
| Repository | Stars |
|---|---|
|
Nexus-Mods/NexusMods.App
Home of the development of the Nexus Mods App
|
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.0 | 5,979 | 4/6/2026 |
| 1.2.1 | 129 | 4/6/2026 |
| 1.2.0 | 8,150 | 3/9/2026 |
| 1.1.3 | 56,366 | 12/21/2025 |
| 1.1.1 | 25,475 | 10/27/2025 |
| 1.1.0 | 213,946 | 11/5/2024 |
| 1.0.11 | 113,819 | 5/4/2024 |
| 1.0.10 | 106,363 | 9/3/2023 |
| 1.0.9 | 3,821 | 7/30/2023 |
| 1.0.8 | 6,357 | 6/16/2023 |
| 1.0.7 | 589 | 6/14/2023 |
| 1.0.6 | 8,470 | 4/4/2023 |
| 1.0.5 | 15,711 | 11/9/2022 |
| 1.0.4 | 20,787 | 9/22/2022 |
| 1.0.3 | 633 | 9/21/2022 |
| 1.0.2 | 647 | 9/20/2022 |
| 1.0.1 | 7,080 | 9/19/2022 |
| 1.0.0 | 1,024 | 9/19/2022 |