public final class ByteCache extends Object
Size Max MaxMem From 1K 32 32K tunnel TrivialPreprocessor 1K 512 512K tunnel FragmentHandler 1K 512 512K I2NP TunnelDataMessage 1K 512 512K tunnel FragmentedMessage 1730 128 216K streaming MessageOutputStream 2K 64 128K UDP IMS 4K 32 128K I2PTunnelRunner 8K 8 64K I2PTunnel HTTPResponseOutputStream 16K 16 256K I2PSnark 32K 4 128K SAM StreamSession 32K 10 320K SAM v2StreamSession 32K 64 2M UDP OMS 32K 128 4M streaming MessageInputStream 36K 64 2.25M streaming PacketQueue 40K 8 320K DataHelper decompress 64K 64 4M UDP MessageReceiver - disabled in 0.7.14
Modifier and Type | Method and Description |
---|---|
ByteArray |
acquire()
Get the next available structure, either from the cache or a brand new one.
|
static void |
clearAll()
Clear everything (memory pressure)
|
static ByteCache |
getInstance(int cacheSize,
int size)
Get a cache responsible for objects of the given size.
|
void |
release(ByteArray entry)
Put this structure back onto the available cache for reuse
|
void |
release(ByteArray entry,
boolean shouldZero) |
public static ByteCache getInstance(int cacheSize, int size)
cacheSize
- how large we want the cache to grow
(number of objects, NOT memory size)
before discarding released objects.
Since 0.7.14, a limit of 1MB / size is enforced
for the typical 128MB max memory JVMsize
- how large should the objects cached be?public static void clearAll()
public final ByteArray acquire()
public final void release(ByteArray entry)
public final void release(ByteArray entry, boolean shouldZero)