Class LRUTypeCache
java.lang.Object
com.fasterxml.classmate.util.ResolvedTypeCache
com.fasterxml.classmate.util.LRUTypeCache
- All Implemented Interfaces:
Serializable
Simple cache used for storing up to specified number of most recently accessed
ResolvedType instances. Uses "least-recently used" eviction algorithm
(via LinkedHashMap used internally) which optimized retention, but
requires full synchronization as read operation also has to modify internal state
to maintain LRU aspects.
This means that it works well in optimizing access patterns, by keeping most recently
accessed types in cache, but may not well work well for highly concurrent cases due
to synchronization overhead.
Like all ResolvedTypeCache implementations,
access is thread-safe and caller need not (and should not) use additional synchronization.
- Since:
- 1.4
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final com.fasterxml.classmate.util.LRUTypeCache.CacheMapprotected final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfind(ResolvedTypeKey key) voidput(ResolvedTypeKey key, ResolvedType type) intsize()Methods inherited from class ResolvedTypeCache
_addForTest, concurrentCache, key, key, lruCache
-
Field Details
-
_maxEntries
protected final int _maxEntries -
_map
protected final transient com.fasterxml.classmate.util.LRUTypeCache.CacheMap _map
-
-
Constructor Details
-
LRUTypeCache
public LRUTypeCache(int maxEntries)
-
-
Method Details
-
find
- Specified by:
findin classResolvedTypeCache
-
size
public int size()- Specified by:
sizein classResolvedTypeCache
-
put
- Specified by:
putin classResolvedTypeCache
-