Alex Peck
Alex Peck
Thanks for the insight, it makes total sense. I'm figuring out how to fit this together - from reading your code in Caffeine you generate a Node class with the...
I hadn't anticipated that. I had thought the opposite might occur - the dropped reads would fail to update the access order+expiry time of a Node, and it would be...
It's good to start out with the fast version and I expect I will learn a lot from it. Your frequency sketch code translated to C# really well and that...
Baseline | Method | Runtime | Mean | Error | StdDev | Ratio | Allocated | |------------------------ |------------------- |----------:|----------:|----------:|------:|----------:| | ConcurrentDictionary | .NET 6.0 | 7.128 ns | 0.1347 ns...
Last piece missing is to defend against frequent updates saturating the write queue. E.g. if the item is updated within 1 second or whatever, don't enqueue/reschedule.
I am the original author of `ConcurrentLru` on which `RCache` is based – so I can give some context on the design goals of the underlying algorithm and its performance...
> Small remark. I realize that we aim primarily for the highly perf, low allocation scenarios (like ConcurrentDictionary). That is a good call. I might use it for many of...
> > From my own experience hacking at it, Bitfaster is a very good caching library, however if you need a portion of the functionality it is better to specialize...
@dependabot rebase
Not able to measure any gain from this on windows or mac, for .Net6 or .net8. Likely the change for the ConcurrentLruCore struct to be embedded/inlined into the parent class...