public final class CacheDescriptor
extends java.lang.Object
implements java.io.Serializable
Modifier and Type | Class and Description |
---|---|
static class |
CacheDescriptor.CacheReferenceType
reference types
|
Modifier and Type | Field and Description |
---|---|
static int |
DEFAULT_CLEANUP_FREQUENCY
Indicates how often the cache cleanup process should run.
|
Constructor and Description |
---|
CacheDescriptor(java.lang.String name, CacheDescriptor.CacheReferenceType type, int capacity)
invokes
CacheDescriptor(String, CacheReferenceType, int, int) with cleanupFrequency = DEFAULT_CLEANUP_FREQUENCY |
CacheDescriptor(java.lang.String name, CacheDescriptor.CacheReferenceType type, int capacity, int cleanupFrequency)
Constructor
|
Modifier and Type | Method and Description |
---|---|
int |
getCapacity()
Returns the capacity of the cache
|
int |
getCleanupFrequency()
Returns the cleanup frequency
|
java.lang.String |
getName()
Returns the name for the cache
|
CacheDescriptor.CacheReferenceType |
getType()
Returns the type of the cache
|
public static final int DEFAULT_CLEANUP_FREQUENCY
public CacheDescriptor(java.lang.String name, CacheDescriptor.CacheReferenceType type, int capacity, int cleanupFrequency)
name
- name for this cachetype
- indicates whether the cache is a weak, soft or hard cachecapacity
- maximum number of entries in the cache. Overflows are handled by evicting entries in LRU fashioncleanupFrequency
- The frequency at which to clean the derived cache of derived values that are no longer valid or have been garbage collected. The frequency is expressed in terms of number of derivations between consequitive cleanups.
A large value effectively disables cleanup. However this is not recommended as it could lead to memory leak due to data structures (however small) to accumulate in memory. A value of 1 invokes cleanup after every derivation, but could be costly. A value between 10 - 100 is a good value
Cleanup should not be confused with derived values being garbage collected or evicted out of the LRU cache. The cleanup process removes extra information about a derived value, that is no longer needed.
public CacheDescriptor(java.lang.String name, CacheDescriptor.CacheReferenceType type, int capacity)
CacheDescriptor(String, CacheReferenceType, int, int)
with cleanupFrequency = DEFAULT_CLEANUP_FREQUENCY
public java.lang.String getName()
public CacheDescriptor.CacheReferenceType getType()
public int getCapacity()
public int getCleanupFrequency()