b805c6e32b
- Our current FIR caches are based on `ConcurrentMap` and thereby do not support size and lifetime limits out of the box. For example, first-layer caches with a limited size can speed up access of the most frequently used elements, while having a small memory footprint. - Caffeine is a modern and well optimized caching library that allows us to create thread-safe and performant caches with various size or lifetime limits. - The cache must support concurrency because session components such as symbol providers may be accessed concurrently once parallel resolve in the Analysis API has been implemented (see KT-55750). Caffeine caches support concurrency.