ConcurrentLinkedHashMap is a concurrent, bounded map for use as an in-memory cache. It is the default caching library in Apache Cassandra and is the reference algorithm for Google Guava CacheBuilder (formally MapMaker).
The following libraries must be installed into the local repository.
$ mvn install:install-file \ -Dfile=lib/cache-benchmark/benchmark-fwk.jar \ -DpomFile=lib/cache-benchmark/pom.xml
$ mvn clean compile
Static analysis and test coverage reports can be viewed by generating the site. $ mvn site
The unit test and benchmark parameter options can be configured in src/test/resources/testng.yaml
The default test suite is used for development. $ mvn test (or mvn -P development test)
The load test suite is used to detect problems that only appear after a long execution, such as memory leaks. $ mvn -P load test
A test or test method can be executed selectively, such as $ mvn -Dtest=ConcurrentMapTest#get_whenNotFound -Dcapacity=100 test
At this time, this library does not supply a canonical benchmark. It leverages existing benchmarking tools available externally.
This benchmarks the single-threaded performance. $ mvn -P caliper test
This benchmarks the multi-threaded performance with an expected bound. $ mvn -P cachebench test
This benchmarks the multi-threaded performance without an expected bound. $ mvn -P perfHash test
This benchmarks the eviction algorithm efficiencies based on a scrambled zipfian working set. $ mvn -P efficiency test