Reduce the default number of objects retained by the Recycler per thread

Motivation:
The Recycler currently retains 32k objects per thread by default. The Recycler is used in more than just one place and may result in large amounts of memory bloat if spikes of traffic are observed.

Modifications:
- Reduce the Recyclers default capacity from 32k to 4k.

Result:
- Lower default capacity of the Recycler and less memory retained.
This commit is contained in:
Scott Mitchell 2018-02-09 09:54:05 -08:00 committed by Norman Maurer
parent 0b0418b368
commit 6cd5e8b0ca

View File

@ -49,7 +49,7 @@ public abstract class Recycler<T> {
}; };
private static final AtomicInteger ID_GENERATOR = new AtomicInteger(Integer.MIN_VALUE); private static final AtomicInteger ID_GENERATOR = new AtomicInteger(Integer.MIN_VALUE);
private static final int OWN_THREAD_ID = ID_GENERATOR.getAndIncrement(); private static final int OWN_THREAD_ID = ID_GENERATOR.getAndIncrement();
private static final int DEFAULT_INITIAL_MAX_CAPACITY_PER_THREAD = 32768; // Use 32k instances as default. private static final int DEFAULT_INITIAL_MAX_CAPACITY_PER_THREAD = 4 * 1024; // Use 4k instances as default.
private static final int DEFAULT_MAX_CAPACITY_PER_THREAD; private static final int DEFAULT_MAX_CAPACITY_PER_THREAD;
private static final int INITIAL_CAPACITY; private static final int INITIAL_CAPACITY;
private static final int MAX_SHARED_CAPACITY_FACTOR; private static final int MAX_SHARED_CAPACITY_FACTOR;