v2.1.0
What's Changed
- Added
ConcurrentLfu, a .NET implementation of the W-TinyLfu admission policy. This closely follows the approach taken by the Caffeine library by Ben Manes - including buffered reads/writes and hill climbing to optimize hit rate. AConcurrentLfuBuilderprovides integration with the existing atomic value factory and scoped value features. - To support
ConcurrentLfuadded theMpscBoundedBufferandStripedMpscBufferclasses. - To support
ConcurrentLfuadded theThreadPoolScheduler,BackgroundThreadSchedulerandForegroundSchedulerclasses. - Added the
Counterclass for fast concurrent counting, based on LongAdder by Doug Lea. - Updated
ConcurrentLruto useCounterfor all metrics and added padding to internal queue counters. This improved throughput by about 2.5x with about 10% worse latency. - Added DebuggerTypeProxy types to customize the debugger view of
FastConcurrentLru,ConcurrentLru,FastConcurrentTLru,ConcurrentTLruandConcurrentLfu. - API documentation is now included in the NuGet package. Provided documentation for all public APIs.
- Rewrote and corrected bugs in the throughput analysis tests, which now support Read, Read + Write, Update and Evict scenarios.
Full changelog: v2.0.0...v2.1.0