|
GemFire 7.0 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface ObjectSizer
The sizer interface defines a method that when called returns the size of the
object passed in. Implementations may return hardcoded values for object size
if the implementation knows the object size for all objects that are likely
to be cached.
You should use a sizer with a EvictionAttributes.createLRUHeapAttributes(ObjectSizer)
or EvictionAttributes.createLRUMemoryAttributes(ObjectSizer) if you want
to use a faster or more accurate method of sizing than provided by the default
object sizer, which is {#link SIZE_CLASS_ONCE
| Field Summary | |
|---|---|
static ObjectSizer |
DEFAULT
The default object sizer, currently SIZE_CLASS_ONCE |
static ObjectSizer |
REFLECTION_SIZE
An implementation of ObjectSizer that calculates an accurate size
for each object that it sizes. |
static ObjectSizer |
SIZE_CLASS_ONCE
An implementation of ObjectSizer that calculates an accurate size
of the first instance of each class that is put in the cache. |
| Method Summary | |
|---|---|
int |
sizeof(Object o)
|
| Field Detail |
|---|
static final ObjectSizer SIZE_CLASS_ONCE
ObjectSizer that calculates an accurate size
of the first instance of each class that is put in the cache. After the
first instance, it will return the same size for every instance of that
class.
This sizer is a compromise between generating accurate sizes for every
object and performance. It should work well if the keys and values in the
region don't vary greatly in size. For accurate sizing of every instance use
REFLECTION_SIZE instead.
This sizer does generate an accurate size for strings and byte arrays every
time, because there is very little performance impact from sizing these
objects.
static final ObjectSizer REFLECTION_SIZE
ObjectSizer that calculates an accurate size
for each object that it sizes.
This sizer will add up the sizes of all objects that are reachable from the
keys and values in your region by non-static fields.
For objects that are all approximately the same size, consider using
SIZE_CLASS_ONCE. It will have much better performance.
static final ObjectSizer DEFAULT
SIZE_CLASS_ONCE
| Method Detail |
|---|
int sizeof(Object o)
|
GemFire 7.0 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||