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 | 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)