public class org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource implements org.terracotta.offheapstore.paging.PageSource
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
super_class: java.lang.Object
{
public static final java.lang.String ALLOCATION_LOG_LOCATION;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
private static final org.slf4j.Logger LOGGER;
descriptor: Lorg/slf4j/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final double PROGRESS_LOGGING_STEP_SIZE;
descriptor: D
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0.1
private static final long PROGRESS_LOGGING_THRESHOLD;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.util.Comparator<org.terracotta.offheapstore.paging.Page> REGION_COMPARATOR;
descriptor: Ljava/util/Comparator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/Comparator<Lorg/terracotta/offheapstore/paging/Page;>;
private final java.util.SortedMap<java.lang.Long, java.lang.Runnable> risingThresholds;
descriptor: Ljava/util/SortedMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/SortedMap<Ljava/lang/Long;Ljava/lang/Runnable;>;
private final java.util.SortedMap<java.lang.Long, java.lang.Runnable> fallingThresholds;
descriptor: Ljava/util/SortedMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/SortedMap<Ljava/lang/Long;Ljava/lang/Runnable;>;
private final java.util.List<org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator> sliceAllocators;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator;>;
private final java.util.List<org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator> victimAllocators;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator;>;
private final java.util.List<java.nio.ByteBuffer> buffers;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/nio/ByteBuffer;>;
private final java.util.List<java.util.NavigableSet<org.terracotta.offheapstore.paging.Page>> victims;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljava/util/NavigableSet<Lorg/terracotta/offheapstore/paging/Page;>;>;
private volatile int availableSet;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static volatile int[] $SWITCH_TABLE$org$terracotta$offheapstore$paging$UpfrontAllocatingPageSource$ThresholdDirection;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: new java.lang.StringBuilder
dup
ldc Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ".allocationDump"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.ALLOCATION_LOG_LOCATION:Ljava/lang/String;
1: ldc Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
invokestatic org.slf4j.LoggerFactory.getLogger:(Ljava/lang/Class;)Lorg/slf4j/Logger;
putstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
2: getstatic org.terracotta.offheapstore.util.MemoryUnit.GIGABYTES:Lorg/terracotta/offheapstore/util/MemoryUnit;
ldc 4
invokevirtual org.terracotta.offheapstore.util.MemoryUnit.toBytes:(J)J
putstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.PROGRESS_LOGGING_THRESHOLD:J
3: invokedynamic compare()Ljava/util/Comparator;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)I
org/terracotta/offheapstore/paging/UpfrontAllocatingPageSource.lambda$0(Lorg/terracotta/offheapstore/paging/Page;Lorg/terracotta/offheapstore/paging/Page;)I (6)
(Lorg/terracotta/offheapstore/paging/Page;Lorg/terracotta/offheapstore/paging/Page;)I
putstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.REGION_COMPARATOR:Ljava/util/Comparator;
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.terracotta.offheapstore.buffersource.BufferSource, long, int);
descriptor: (Lorg/terracotta/offheapstore/buffersource/BufferSource;JI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: aload 0
aload 1
lload 2
iload 4
iconst_m1
iconst_1
invokespecial org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.<init>:(Lorg/terracotta/offheapstore/buffersource/BufferSource;JIIZ)V
1: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 2 1 source Lorg/terracotta/offheapstore/buffersource/BufferSource;
0 2 2 toAllocate J
0 2 4 chunkSize I
MethodParameters:
Name Flags
source
toAllocate
chunkSize
public void <init>(org.terracotta.offheapstore.buffersource.BufferSource, long, int, int);
descriptor: (Lorg/terracotta/offheapstore/buffersource/BufferSource;JII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 4 start local 5 0: aload 0
aload 1
lload 2
iload 4
iload 5
iconst_0
invokespecial org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.<init>:(Lorg/terracotta/offheapstore/buffersource/BufferSource;JIIZ)V
1: return
end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 2 1 source Lorg/terracotta/offheapstore/buffersource/BufferSource;
0 2 2 toAllocate J
0 2 4 maxChunk I
0 2 5 minChunk I
MethodParameters:
Name Flags
source
toAllocate
maxChunk
minChunk
private void <init>(org.terracotta.offheapstore.buffersource.BufferSource, long, int, int, boolean);
descriptor: (Lorg/terracotta/offheapstore/buffersource/BufferSource;JIIZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 4 start local 5 start local 6 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
putfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.risingThresholds:Ljava/util/SortedMap;
2: aload 0
new java.util.TreeMap
dup
invokespecial java.util.TreeMap.<init>:()V
putfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.fallingThresholds:Ljava/util/SortedMap;
3: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.sliceAllocators:Ljava/util/List;
4: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victimAllocators:Ljava/util/List;
5: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.buffers:Ljava/util/List;
6: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victims:Ljava/util/List;
7: aload 0
iconst_m1
putfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.availableSet:I
8: invokestatic org.terracotta.offheapstore.util.PhysicalMemory.totalPhysicalMemory:()Ljava/lang/Long;
astore 7
start local 7 9: invokestatic org.terracotta.offheapstore.util.PhysicalMemory.freePhysicalMemory:()Ljava/lang/Long;
astore 8
start local 8 10: aload 7
ifnull 14
lload 2
aload 7
invokevirtual java.lang.Long.longValue:()J
lcmp
ifle 14
11: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Attempting to allocate "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 2
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "B of memory "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: ldc "when the host only contains "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 7
invokevirtual java.lang.Long.longValue:()J
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "B of physical memory"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
13: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
14: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource org.terracotta.offheapstore.buffersource.BufferSource long int int int java.lang.Long java.lang.Long
StackMap stack:
aload 8
ifnull 18
lload 2
aload 8
invokevirtual java.lang.Long.longValue:()J
lcmp
ifle 18
15: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Attempting to allocate {}B of offheap when there is only {}B of free physical memory - some paging will therefore occur."
16: lload 2
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
aload 8
invokevirtual java.lang.Long.longValue:()J
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
17: invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
18: StackMap locals:
StackMap stack:
getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isInfoEnabled:()Z
ifeq 20
19: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Allocating {}B in chunks"
lload 2
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
20: StackMap locals:
StackMap stack:
aload 1
lload 2
iload 4
iload 5
iload 6
invokestatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.allocateBackingBuffers:(Lorg/terracotta/offheapstore/buffersource/BufferSource;JIIZ)Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 10
goto 26
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource org.terracotta.offheapstore.buffersource.BufferSource long int int int java.lang.Long java.lang.Long top java.util.Iterator
StackMap stack:
21: aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 9
start local 9 22: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.sliceAllocators:Ljava/util/List;
new org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
dup
aload 9
invokevirtual java.nio.ByteBuffer.capacity:()I
invokespecial org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.<init>:(I)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
23: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victimAllocators:Ljava/util/List;
new org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
dup
aload 9
invokevirtual java.nio.ByteBuffer.capacity:()I
invokespecial org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.<init>:(I)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
24: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victims:Ljava/util/List;
new java.util.TreeSet
dup
getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.REGION_COMPARATOR:Ljava/util/Comparator;
invokespecial java.util.TreeSet.<init>:(Ljava/util/Comparator;)V
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
25: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.buffers:Ljava/util/List;
aload 9
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 9 26: StackMap locals:
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 21
27: return
end local 8 end local 7 end local 6 end local 5 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 28 1 source Lorg/terracotta/offheapstore/buffersource/BufferSource;
0 28 2 toAllocate J
0 28 4 maxChunk I
0 28 5 minChunk I
0 28 6 fixed Z
9 28 7 totalPhysical Ljava/lang/Long;
10 28 8 freePhysical Ljava/lang/Long;
22 26 9 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
source
toAllocate
maxChunk
minChunk
fixed
public long getCapacity();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.buffers:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource long top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 3
start local 3 3: lload 1
aload 3
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
ladd
lstore 1
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
1 6 1 capacity J
3 4 3 buffer Ljava/nio/ByteBuffer;
public org.terracotta.offheapstore.paging.Page allocate(int, boolean, boolean, org.terracotta.offheapstore.paging.OffHeapStorageArea);
descriptor: (IZZLorg/terracotta/offheapstore/paging/OffHeapStorageArea;)Lorg/terracotta/offheapstore/paging/Page;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
ifeq 2
1: aload 0
iload 1
iload 3
aload 4
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.allocateAsThief:(IZLorg/terracotta/offheapstore/paging/OffHeapStorageArea;)Lorg/terracotta/offheapstore/paging/Page;
areturn
2: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 3
aload 4
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.allocateFromFree:(IZLorg/terracotta/offheapstore/paging/OffHeapStorageArea;)Lorg/terracotta/offheapstore/paging/Page;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 3 1 size I
0 3 2 thief Z
0 3 3 victim Z
0 3 4 owner Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
MethodParameters:
Name Flags
size
thief
victim
owner
private org.terracotta.offheapstore.paging.Page allocateAsThief(int, boolean, org.terracotta.offheapstore.paging.OffHeapStorageArea);
descriptor: (IZLorg/terracotta/offheapstore/paging/OffHeapStorageArea;)Lorg/terracotta/offheapstore/paging/Page;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=17, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iload 1
iload 2
aload 3
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.allocateFromFree:(IZLorg/terracotta/offheapstore/paging/OffHeapStorageArea;)Lorg/terracotta/offheapstore/paging/Page;
astore 4
start local 4 1: aload 4
ifnull 3
2: aload 4
areturn
3: StackMap locals: org.terracotta.offheapstore.paging.Page
StackMap stack:
aconst_null
astore 5
start local 5 4: aconst_null
astore 6
start local 6 5: invokestatic java.util.Collections.emptyList:()Ljava/util/List;
astore 7
start local 7 6: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 8
start local 8 7: new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
astore 9
start local 9 8: aload 0
dup
astore 10
monitorenter
9: iconst_0
istore 11
start local 11 10: goto 36
11: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victimAllocators:Ljava/util/List;
iload 11
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
iload 1
iload 2
ifeq 12
getstatic org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator$Packing.CEILING:Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator$Packing;
goto 13
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int
StackMap stack: org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator int
12: getstatic org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator$Packing.FLOOR:Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator$Packing;
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int
StackMap stack: org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator int org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator$Packing
13: invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.find:(ILorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator$Packing;)I
istore 12
start local 12 14: iload 12
iflt 35
15: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victimAllocators:Ljava/util/List;
iload 11
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
astore 5
16: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.sliceAllocators:Ljava/util/List;
iload 11
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
astore 6
17: aload 0
iload 11
iload 12
iload 1
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.findVictimPages:(III)Ljava/util/List;
astore 7
18: iload 12
istore 13
start local 13 19: aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 15
goto 28
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int int top java.util.Iterator
StackMap stack:
20: aload 15
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 14
start local 14 21: aload 5
aload 14
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 14
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.claim:(II)V
22: aload 14
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
iload 13
isub
istore 16
start local 16 23: iload 16
ifle 27
24: aload 8
new org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion
dup
iload 13
iload 16
invokespecial org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion.<init>:(II)V
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
25: aload 6
iload 13
iload 16
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.claim:(II)V
26: aload 5
iload 13
iload 16
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.claim:(II)V
27: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int int org.terracotta.offheapstore.paging.Page java.util.Iterator int
StackMap stack:
aload 14
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 14
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
iadd
istore 13
end local 16 end local 14 28: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int int top java.util.Iterator
StackMap stack:
aload 15
invokeinterface java.util.Iterator.hasNext:()Z
ifne 20
29: iload 12
iload 1
iadd
iload 13
isub
istore 14
start local 14 30: iload 14
ifle 37
31: aload 8
new org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion
dup
iload 13
iload 14
invokespecial org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion.<init>:(II)V
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
32: aload 6
iload 13
iload 14
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.claim:(II)V
33: aload 5
iload 13
iload 14
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.claim:(II)V
34: goto 37
end local 14 end local 13 end local 12 35: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
36: iload 11
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victimAllocators:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 11
end local 11 37: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 47
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource top java.util.Iterator
StackMap stack:
38: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 11
start local 11 39: aload 11
invokevirtual org.terracotta.offheapstore.paging.Page.binding:()Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
astore 13
start local 13 40: aload 9
aload 13
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Collection
astore 14
start local 14 41: aload 14
ifnonnull 46
42: new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 14
43: aload 14
aload 11
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
44: aload 9
aload 13
aload 14
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
45: goto 47
46: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource org.terracotta.offheapstore.paging.Page java.util.Iterator org.terracotta.offheapstore.paging.OffHeapStorageArea java.util.Collection
StackMap stack:
aload 14
aload 11
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
end local 14 end local 13 end local 11 47: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource top java.util.Iterator
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 38
48: aload 10
monitorexit
49: goto 52
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
StackMap stack: java.lang.Throwable
50: aload 10
monitorexit
51: athrow
52: StackMap locals:
StackMap stack:
new java.util.LinkedList
dup
invokespecial java.util.LinkedList.<init>:()V
astore 10
start local 10 53: aload 9
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 12
goto 58
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection top java.util.Iterator
StackMap stack:
54: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 11
start local 11 55: aload 11
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.OffHeapStorageArea
astore 13
start local 13 56: aload 11
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.util.Collection
astore 14
start local 14 57: aload 10
aload 13
aload 14
invokevirtual org.terracotta.offheapstore.paging.OffHeapStorageArea.release:(Ljava/util/Collection;)Ljava/util/Collection;
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
end local 14 end local 13 end local 11 58: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 54
59: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 11
start local 11 60: aload 0
dup
astore 12
monitorenter
61: aload 8
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 14
goto 65
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource top java.util.Iterator
StackMap stack:
62: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion
astore 13
start local 13 63: aload 6
aload 13
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion.address:I
aload 13
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion.size:I
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.free:(II)V
64: aload 5
aload 13
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion.address:I
aload 13
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion.size:I
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.free:(II)V
end local 13 65: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 62
66: aload 10
invokeinterface java.util.Collection.size:()I
aload 7
invokeinterface java.util.List.size:()I
if_icmpne 74
67: aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 71
StackMap locals:
StackMap stack:
68: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 13
start local 13 69: aload 5
aload 13
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 13
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.free:(II)V
70: aload 0
aload 13
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.free:(Lorg/terracotta/offheapstore/paging/Page;)V
end local 13 71: StackMap locals:
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 68
72: aload 0
iload 1
iload 2
aload 3
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.allocateFromFree:(IZLorg/terracotta/offheapstore/paging/OffHeapStorageArea;)Lorg/terracotta/offheapstore/paging/Page;
aload 12
monitorexit
73: areturn
74: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
StackMap stack:
aload 7
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 14
goto 81
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource top java.util.Iterator
StackMap stack:
75: aload 14
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 13
start local 13 76: aload 10
aload 13
invokeinterface java.util.Collection.contains:(Ljava/lang/Object;)Z
ifeq 80
77: aload 5
aload 13
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 13
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.free:(II)V
78: aload 0
aload 13
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.free:(Lorg/terracotta/offheapstore/paging/Page;)V
79: goto 81
80: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource org.terracotta.offheapstore.paging.Page java.util.Iterator
StackMap stack:
aload 11
aload 13
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 13 81: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource top java.util.Iterator
StackMap stack:
aload 14
invokeinterface java.util.Iterator.hasNext:()Z
ifne 75
82: aload 12
monitorexit
83: goto 86
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
StackMap stack: java.lang.Throwable
84: aload 12
monitorexit
85: athrow
86: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
aload 3
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.allocateAsThief:(IZLorg/terracotta/offheapstore/paging/OffHeapStorageArea;)Lorg/terracotta/offheapstore/paging/Page;
astore 13
87: aload 0
dup
astore 14
monitorenter
88: aload 11
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 16
goto 92
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List top org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource top java.util.Iterator
StackMap stack:
89: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 15
start local 15 90: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victims:Ljava/util/List;
aload 15
invokevirtual org.terracotta.offheapstore.paging.Page.index:()I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.NavigableSet
aload 15
invokeinterface java.util.NavigableSet.floor:(Ljava/lang/Object;)Ljava/lang/Object;
aload 15
if_acmpne 92
91: aload 5
aload 15
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 15
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.free:(II)V
end local 15 92: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 89
93: aload 14
monitorexit
94: goto 97
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List top org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
StackMap stack: java.lang.Throwable
95: aload 14
monitorexit
96: athrow
97: StackMap locals:
StackMap stack:
aload 13
areturn
98: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List
StackMap stack: java.lang.Throwable
astore 12
99: aload 0
dup
astore 14
monitorenter
100: aload 11
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 16
goto 104
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List java.lang.Throwable top org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource top java.util.Iterator
StackMap stack:
101: aload 16
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.paging.Page
astore 15
start local 15 102: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victims:Ljava/util/List;
aload 15
invokevirtual org.terracotta.offheapstore.paging.Page.index:()I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.NavigableSet
aload 15
invokeinterface java.util.NavigableSet.floor:(Ljava/lang/Object;)Ljava/lang/Object;
aload 15
if_acmpne 104
103: aload 5
aload 15
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 15
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.free:(II)V
end local 15 104: StackMap locals:
StackMap stack:
aload 16
invokeinterface java.util.Iterator.hasNext:()Z
ifne 101
105: aload 14
monitorexit
106: goto 109
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List java.lang.Throwable top org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
StackMap stack: java.lang.Throwable
107: aload 14
monitorexit
108: athrow
109: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.Page org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator java.util.List java.util.Collection java.util.Map java.util.Collection java.util.List java.lang.Throwable
StackMap stack:
aload 12
athrow
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 110 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 110 1 size I
0 110 2 victim Z
0 110 3 owner Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
1 110 4 free Lorg/terracotta/offheapstore/paging/Page;
4 110 5 victimAllocator Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator;
5 110 6 sliceAllocator Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator;
6 110 7 targets Ljava/util/List<Lorg/terracotta/offheapstore/paging/Page;>;
7 110 8 tempHolds Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource$AllocatedRegion;>;
8 110 9 releases Ljava/util/Map<Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;>;
10 37 11 i I
14 35 12 address I
19 35 13 claimAddress I
21 28 14 p Lorg/terracotta/offheapstore/paging/Page;
23 28 16 claimSize I
30 35 14 claimSize I
39 47 11 p Lorg/terracotta/offheapstore/paging/Page;
40 47 13 a Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
41 47 14 c Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;
53 110 10 results Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;
55 58 11 e Ljava/util/Map$Entry<Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;>;
56 58 13 a Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
57 58 14 p Ljava/util/Collection<Lorg/terracotta/offheapstore/paging/Page;>;
60 110 11 failedReleases Ljava/util/List<Lorg/terracotta/offheapstore/paging/Page;>;
63 65 13 r Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource$AllocatedRegion;
69 71 13 p Lorg/terracotta/offheapstore/paging/Page;
76 81 13 p Lorg/terracotta/offheapstore/paging/Page;
90 92 15 p Lorg/terracotta/offheapstore/paging/Page;
102 104 15 p Lorg/terracotta/offheapstore/paging/Page;
Exception table:
from to target type
9 49 50 any
50 51 50 any
61 73 84 any
74 83 84 any
84 85 84 any
88 94 95 any
95 96 95 any
86 87 98 any
100 106 107 any
107 108 107 any
MethodParameters:
Name Flags
size final
victim
owner
private java.util.List<org.terracotta.offheapstore.paging.Page> findVictimPages(int, int, int);
descriptor: (III)Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new java.util.ArrayList
dup
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victims:Ljava/util/List;
iload 1
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.NavigableSet
new org.terracotta.offheapstore.paging.Page
dup
aconst_null
iconst_m1
iload 2
aconst_null
invokespecial org.terracotta.offheapstore.paging.Page.<init>:(Ljava/nio/ByteBuffer;IILorg/terracotta/offheapstore/paging/OffHeapStorageArea;)V
1: new org.terracotta.offheapstore.paging.Page
dup
aconst_null
iconst_m1
iload 2
iload 3
iadd
aconst_null
invokespecial org.terracotta.offheapstore.paging.Page.<init>:(Ljava/nio/ByteBuffer;IILorg/terracotta/offheapstore/paging/OffHeapStorageArea;)V
2: invokeinterface java.util.NavigableSet.subSet:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedSet;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 3 1 chunk I
0 3 2 address I
0 3 3 size I
Signature: (III)Ljava/util/List<Lorg/terracotta/offheapstore/paging/Page;>;
MethodParameters:
Name Flags
chunk
address
size
private org.terracotta.offheapstore.paging.Page allocateFromFree(int, boolean, org.terracotta.offheapstore.paging.OffHeapStorageArea);
descriptor: (IZLorg/terracotta/offheapstore/paging/OffHeapStorageArea;)Lorg/terracotta/offheapstore/paging/Page;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 1
invokestatic java.lang.Integer.bitCount:(I)I
iconst_1
if_icmpeq 4
1: iload 1
invokestatic java.lang.Integer.highestOneBit:(I)I
iconst_1
ishl
istore 4
start local 4 2: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Request to allocate {}B will allocate {}B"
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iload 4
i2l
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
3: iload 4
istore 1
end local 4 4: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.isUnavailable:(I)Z
ifeq 6
5: aconst_null
areturn
6: StackMap locals:
StackMap stack:
aload 0
dup
astore 4
monitorenter
7: iconst_0
istore 5
start local 5 8: goto 27
9: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.sliceAllocators:Ljava/util/List;
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
iload 1
iload 2
ifeq 10
getstatic org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator$Packing.CEILING:Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator$Packing;
goto 11
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int
StackMap stack: org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator int
10: getstatic org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator$Packing.FLOOR:Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator$Packing;
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int
StackMap stack: org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator int org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator$Packing
11: invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.allocate:(ILorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator$Packing;)I
istore 6
start local 6 12: iload 6
iflt 26
13: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 15
14: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Allocating a {}B buffer from chunk {} &{}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
iload 1
i2l
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
aastore
dup
iconst_1
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
15: StackMap locals: int
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.buffers:Ljava/util/List;
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.nio.ByteBuffer
iload 6
iload 1
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
iload 6
invokevirtual java.nio.Buffer.position:(I)Ljava/nio/Buffer;
checkcast java.nio.ByteBuffer
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
astore 7
start local 7 16: new org.terracotta.offheapstore.paging.Page
dup
aload 7
iload 5
iload 6
aload 3
invokespecial org.terracotta.offheapstore.paging.Page.<init>:(Ljava/nio/ByteBuffer;IILorg/terracotta/offheapstore/paging/OffHeapStorageArea;)V
astore 8
start local 8 17: iload 2
ifeq 20
18: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victims:Ljava/util/List;
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.NavigableSet
aload 8
invokeinterface java.util.NavigableSet.add:(Ljava/lang/Object;)Z
pop
19: goto 21
20: StackMap locals: java.nio.ByteBuffer org.terracotta.offheapstore.paging.Page
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victimAllocators:Ljava/util/List;
iload 5
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
iload 6
iload 1
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.claim:(II)V
21: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.risingThresholds:Ljava/util/SortedMap;
invokeinterface java.util.SortedMap.isEmpty:()Z
ifne 24
22: aload 0
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.getAllocatedSize:()J
lstore 9
start local 9 23: aload 0
lload 9
iload 1
i2l
lsub
lload 9
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.fireThresholds:(JJ)V
end local 9 24: StackMap locals:
StackMap stack:
aload 8
aload 4
monitorexit
25: areturn
end local 8 end local 7 end local 6 26: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
27: iload 5
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.sliceAllocators:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 9
end local 5 28: aload 0
iload 1
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.markUnavailable:(I)V
29: aload 4
monitorexit
30: aconst_null
areturn
31: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource int int org.terracotta.offheapstore.paging.OffHeapStorageArea org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
StackMap stack: java.lang.Throwable
aload 4
monitorexit
32: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 33 1 size I
0 33 2 victim Z
0 33 3 owner Lorg/terracotta/offheapstore/paging/OffHeapStorageArea;
2 4 4 rounded I
8 28 5 i I
12 26 6 address I
16 26 7 b Ljava/nio/ByteBuffer;
17 26 8 p Lorg/terracotta/offheapstore/paging/Page;
23 24 9 allocated J
Exception table:
from to target type
7 25 31 any
26 30 31 any
31 32 31 any
MethodParameters:
Name Flags
size
victim
owner
public synchronized void free(org.terracotta.offheapstore.paging.Page);
descriptor: (Lorg/terracotta/offheapstore/paging/Page;)V
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=7, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.isFreeable:()Z
ifeq 10
1: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 3
2: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Freeing a {}B buffer from chunk {} &{}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
i2l
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
aastore
dup
iconst_1
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.index:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;[Ljava/lang/Object;)V
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.markAllAvailable:()V
4: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.sliceAllocators:Ljava/util/List;
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.index:()I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.free:(II)V
5: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victims:Ljava/util/List;
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.index:()I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.util.NavigableSet
aload 1
invokeinterface java.util.NavigableSet.remove:(Ljava/lang/Object;)Z
pop
6: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victimAllocators:Ljava/util/List;
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.index:()I
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.tryFree:(II)V
7: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.fallingThresholds:Ljava/util/SortedMap;
invokeinterface java.util.SortedMap.isEmpty:()Z
ifne 10
8: aload 0
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.getAllocatedSize:()J
lstore 2
start local 2 9: aload 0
lload 2
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
i2l
ladd
lload 2
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.fireThresholds:(JJ)V
end local 2 10: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 11 1 page Lorg/terracotta/offheapstore/paging/Page;
9 10 2 allocated J
MethodParameters:
Name Flags
page
public synchronized long getAllocatedSize();
descriptor: ()J
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=4, locals=5, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.sliceAllocators:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource long top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
astore 3
start local 3 3: lload 1
aload 3
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.occupied:()I
i2l
ladd
lstore 1
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
1 6 1 sum J
3 4 3 a Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator;
public long getAllocatedSizeUnSync();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: lconst_0
lstore 1
start local 1 1: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.sliceAllocators:Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 4
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource long top java.util.Iterator
StackMap stack:
2: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator
astore 3
start local 3 3: lload 1
aload 3
invokevirtual org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator.occupied:()I
i2l
ladd
lstore 1
end local 3 4: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
5: lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
1 6 1 sum J
3 4 3 a Lorg/terracotta/offheapstore/storage/allocator/PowerOfTwoAllocator;
private boolean isUnavailable(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.availableSet:I
iload 1
iand
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 2 1 size I
MethodParameters:
Name Flags
size
private synchronized void markAllAvailable();
descriptor: ()V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_m1
putfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.availableSet:I
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
private synchronized void markUnavailable(int);
descriptor: (I)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.availableSet:I
iload 1
iconst_m1
ixor
iand
putfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.availableSet:I
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 2 1 size I
MethodParameters:
Name Flags
size
public synchronized java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "UpfrontAllocatingPageSource"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 8
3: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 1
ldc "\nChunk "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
iconst_1
iadd
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
4: aload 1
ldc "Size : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.buffers:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
checkcast java.nio.ByteBuffer
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "B\n"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: aload 1
ldc "Free Allocator : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.sliceAllocators:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
bipush 10
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
6: aload 1
ldc "Victim Allocator : "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.victimAllocators:Ljava/util/List;
iload 2
invokeinterface java.util.List.get:(I)Ljava/lang/Object;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
pop
7: iinc 2 1
StackMap locals:
StackMap stack:
8: iload 2
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.buffers:Ljava/util/List;
invokeinterface java.util.List.size:()I
if_icmplt 3
end local 2 9: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
1 10 1 sb Ljava/lang/StringBuilder;
2 9 2 i I
private synchronized void fireThresholds(long, long);
descriptor: (JJ)V
flags: (0x0022) ACC_PRIVATE, ACC_SYNCHRONIZED
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 3 0: lload 3
lload 1
lcmp
ifle 3
1: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.risingThresholds:Ljava/util/SortedMap;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.SortedMap.subMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedMap;
invokeinterface java.util.SortedMap.values:()Ljava/util/Collection;
astore 5
start local 5 2: goto 7
end local 5 StackMap locals:
StackMap stack:
3: lload 3
lload 1
lcmp
ifge 6
4: aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.fallingThresholds:Ljava/util/SortedMap;
lload 3
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.SortedMap.subMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/SortedMap;
invokeinterface java.util.SortedMap.values:()Ljava/util/Collection;
astore 5
start local 5 5: goto 7
end local 5 6: StackMap locals:
StackMap stack:
invokestatic java.util.Collections.emptyList:()Ljava/util/List;
astore 5
start local 5 7: StackMap locals: java.util.Collection
StackMap stack:
aload 5
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 7
goto 13
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource long long java.util.Collection top java.util.Iterator
StackMap stack:
8: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Runnable
astore 6
start local 6 9: aload 6
invokeinterface java.lang.Runnable.run:()V
10: goto 13
StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource long long java.util.Collection java.lang.Runnable java.util.Iterator
StackMap stack: java.lang.Throwable
11: astore 8
start local 8 12: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Throwable thrown by threshold action"
aload 8
invokeinterface org.slf4j.Logger.error:(Ljava/lang/String;Ljava/lang/Throwable;)V
end local 8 end local 6 13: StackMap locals: org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource long long java.util.Collection top java.util.Iterator
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
14: return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 15 1 incoming J
0 15 3 outgoing J
2 3 5 thresholds Ljava/util/Collection<Ljava/lang/Runnable;>;
5 6 5 thresholds Ljava/util/Collection<Ljava/lang/Runnable;>;
7 15 5 thresholds Ljava/util/Collection<Ljava/lang/Runnable;>;
9 13 6 r Ljava/lang/Runnable;
12 13 8 t Ljava/lang/Throwable;
Exception table:
from to target type
9 10 11 Class java.lang.Throwable
MethodParameters:
Name Flags
incoming
outgoing
public synchronized java.lang.Runnable addAllocationThreshold(org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection, long, java.lang.Runnable);
descriptor: (Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource$ThresholdDirection;JLjava/lang/Runnable;)Ljava/lang/Runnable;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 4 0: invokestatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.$SWITCH_TABLE$org$terracotta$offheapstore$paging$UpfrontAllocatingPageSource$ThresholdDirection:()[I
aload 1
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection.ordinal:()I
iaload
tableswitch { // 1 - 2
1: 1
2: 2
default: 3
}
1: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.risingThresholds:Ljava/util/SortedMap;
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 4
invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Runnable
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.fallingThresholds:Ljava/util/SortedMap;
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 4
invokeinterface java.util.SortedMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Runnable
areturn
3: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 4 1 direction Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource$ThresholdDirection;
0 4 2 threshold J
0 4 4 action Ljava/lang/Runnable;
MethodParameters:
Name Flags
direction
threshold
action
public synchronized java.lang.Runnable removeAllocationThreshold(org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection, long);
descriptor: (Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource$ThresholdDirection;J)Ljava/lang/Runnable;
flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.$SWITCH_TABLE$org$terracotta$offheapstore$paging$UpfrontAllocatingPageSource$ThresholdDirection:()[I
aload 1
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection.ordinal:()I
iaload
tableswitch { // 1 - 2
1: 1
2: 2
default: 3
}
1: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.risingThresholds:Ljava/util/SortedMap;
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.SortedMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Runnable
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.fallingThresholds:Ljava/util/SortedMap;
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface java.util.SortedMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Runnable
areturn
3: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource;
0 4 1 direction Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource$ThresholdDirection;
0 4 2 threshold J
MethodParameters:
Name Flags
direction
threshold
private static java.util.Collection<java.nio.ByteBuffer> allocateBackingBuffers(org.terracotta.offheapstore.buffersource.BufferSource, long, int, int, boolean);
descriptor: (Lorg/terracotta/offheapstore/buffersource/BufferSource;JIIZ)Ljava/util/Collection;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=24, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 1
invokestatic java.lang.System.nanoTime:()J
goto 2
StackMap locals:
StackMap stack:
1: lconst_0
StackMap locals:
StackMap stack: long
2: lstore 6
start local 6 3: lload 1
iload 3
iload 4
invokestatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.createAllocatorLog:(JII)Ljava/io/PrintStream;
astore 8
start local 8 4: new java.util.ArrayList
dup
lload 1
iload 3
i2l
ldiv
ldc 10
ladd
l2i
invokespecial java.util.ArrayList.<init>:(I)V
astore 9
start local 9 5: aload 8
ifnull 7
6: aload 8
ldc "timestamp,threadid,duration,size,physfree,totalswap,freeswap,committed%n"
iconst_0
anewarray java.lang.Object
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
7: StackMap locals: long java.io.PrintStream java.util.Collection
StackMap stack:
new java.util.ArrayList
dup
lload 1
iload 3
i2l
ldiv
lconst_1
ladd
l2i
invokespecial java.util.ArrayList.<init>:(I)V
astore 10
start local 10 8: invokestatic java.lang.Runtime.getRuntime:()Ljava/lang/Runtime;
invokevirtual java.lang.Runtime.availableProcessors:()I
invokestatic java.util.concurrent.Executors.newFixedThreadPool:(I)Ljava/util/concurrent/ExecutorService;
astore 11
start local 11 9: lconst_0
lstore 12
start local 12 10: goto 14
11: StackMap locals: java.util.List java.util.concurrent.ExecutorService long
StackMap stack:
iload 3
i2l
lload 1
lload 12
lsub
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 14
start local 14 12: aload 10
aload 11
aload 0
iload 14
iload 4
iload 5
aload 8
lload 6
invokedynamic call(Lorg/terracotta/offheapstore/buffersource/BufferSource;IIZLjava/io/PrintStream;J)Ljava/util/concurrent/Callable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
org/terracotta/offheapstore/paging/UpfrontAllocatingPageSource.lambda$1(Lorg/terracotta/offheapstore/buffersource/BufferSource;IIZLjava/io/PrintStream;J)Ljava/util/Collection; (6)
()Ljava/util/Collection;
invokeinterface java.util.concurrent.ExecutorService.submit:(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future;
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
13: lload 12
iload 14
i2l
ladd
lstore 12
end local 14 14: StackMap locals:
StackMap stack:
lload 12
lload 1
lcmp
iflt 11
end local 12 15: goto 19
StackMap locals: org.terracotta.offheapstore.buffersource.BufferSource long int int int long java.io.PrintStream java.util.Collection java.util.List java.util.concurrent.ExecutorService
StackMap stack: java.lang.Throwable
16: astore 15
17: aload 11
invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
18: aload 15
athrow
19: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.concurrent.ExecutorService.shutdown:()V
20: lconst_0
lstore 12
start local 12 21: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.PROGRESS_LOGGING_THRESHOLD:J
lload 1
l2d
ldc 0.1
dmul
d2l
invokestatic java.lang.Math.max:(JJ)J
lstore 14
start local 14 22: lload 14
lstore 16
start local 16 23: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 19
goto 34
StackMap locals: org.terracotta.offheapstore.buffersource.BufferSource long int int int long java.io.PrintStream java.util.Collection java.util.List java.util.concurrent.ExecutorService long long long top java.util.Iterator
StackMap stack:
24: aload 19
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.concurrent.Future
astore 18
start local 18 25: aload 18
invokestatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.uninterruptibleGet:(Ljava/util/concurrent/Future;)Ljava/lang/Object;
checkcast java.util.Collection
astore 20
start local 20 26: aload 9
aload 20
invokeinterface java.util.Collection.addAll:(Ljava/util/Collection;)Z
pop
27: aload 20
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 22
goto 33
StackMap locals: org.terracotta.offheapstore.buffersource.BufferSource long int int int long java.io.PrintStream java.util.Collection java.util.List java.util.concurrent.ExecutorService long long long java.util.concurrent.Future java.util.Iterator java.util.Collection top java.util.Iterator
StackMap stack:
28: aload 22
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 21
start local 21 29: lload 12
aload 21
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
ladd
lstore 12
30: lload 12
lload 16
lcmp
ifle 33
31: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Allocation {}% complete"
ldc 100
lload 12
lmul
lload 1
ldiv
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokeinterface org.slf4j.Logger.info:(Ljava/lang/String;Ljava/lang/Object;)V
32: lload 16
lload 14
ladd
lstore 16
end local 21 33: StackMap locals:
StackMap stack:
aload 22
invokeinterface java.util.Iterator.hasNext:()Z
ifne 28
end local 20 end local 18 34: StackMap locals: org.terracotta.offheapstore.buffersource.BufferSource long int int int long java.io.PrintStream java.util.Collection java.util.List java.util.concurrent.ExecutorService long long long top java.util.Iterator
StackMap stack:
aload 19
invokeinterface java.util.Iterator.hasNext:()Z
ifne 24
end local 16 end local 14 end local 12 end local 11 end local 10 35: goto 40
StackMap locals: org.terracotta.offheapstore.buffersource.BufferSource long int int int long java.io.PrintStream java.util.Collection
StackMap stack: java.lang.Throwable
36: astore 23
37: aload 8
ifnull 39
38: aload 8
invokevirtual java.io.PrintStream.close:()V
39: StackMap locals: org.terracotta.offheapstore.buffersource.BufferSource long int int int long java.io.PrintStream java.util.Collection top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 23
athrow
40: StackMap locals: org.terracotta.offheapstore.buffersource.BufferSource long int int int long java.io.PrintStream java.util.Collection
StackMap stack:
aload 8
ifnull 42
41: aload 8
invokevirtual java.io.PrintStream.close:()V
42: StackMap locals:
StackMap stack:
getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 45
43: invokestatic java.lang.System.nanoTime:()J
lload 6
lsub
lstore 10
start local 10 44: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Took {} ms to create off-heap storage of {}B."
getstatic java.util.concurrent.TimeUnit.NANOSECONDS:Ljava/util/concurrent/TimeUnit;
lload 10
invokevirtual java.util.concurrent.TimeUnit.toMillis:(J)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
lload 1
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
end local 10 45: StackMap locals:
StackMap stack:
aload 9
invokestatic java.util.Collections.unmodifiableCollection:(Ljava/util/Collection;)Ljava/util/Collection;
areturn
end local 9 end local 8 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 46 0 source Lorg/terracotta/offheapstore/buffersource/BufferSource;
0 46 1 toAllocate J
0 46 3 maxChunk I
0 46 4 minChunk I
0 46 5 fixed Z
3 46 6 start J
4 46 8 allocatorLog Ljava/io/PrintStream;
5 46 9 buffers Ljava/util/Collection<Ljava/nio/ByteBuffer;>;
8 35 10 futures Ljava/util/List<Ljava/util/concurrent/Future<Ljava/util/Collection<Ljava/nio/ByteBuffer;>;>;>;
9 35 11 executorService Ljava/util/concurrent/ExecutorService;
10 15 12 dispatched J
12 14 14 currentChunkSize I
21 35 12 allocated J
22 35 14 progressStep J
23 35 16 nextProgressLogAt J
25 34 18 future Ljava/util/concurrent/Future<Ljava/util/Collection<Ljava/nio/ByteBuffer;>;>;
26 34 20 result Ljava/util/Collection<Ljava/nio/ByteBuffer;>;
29 33 21 buffer Ljava/nio/ByteBuffer;
44 45 10 duration J
Exception table:
from to target type
9 16 16 any
5 36 36 any
Signature: (Lorg/terracotta/offheapstore/buffersource/BufferSource;JIIZ)Ljava/util/Collection<Ljava/nio/ByteBuffer;>;
MethodParameters:
Name Flags
source final
toAllocate
maxChunk
minChunk final
fixed final
private static java.util.Collection<java.nio.ByteBuffer> bufferAllocation(org.terracotta.offheapstore.buffersource.BufferSource, int, int, boolean, java.io.PrintStream, long);
descriptor: (Lorg/terracotta/offheapstore/buffersource/BufferSource;IIZLjava/io/PrintStream;J)Ljava/util/Collection;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=9, locals=18, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: lconst_0
lstore 7
start local 7 1: iload 1
i2l
lstore 9
start local 9 2: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 11
start local 11 3: goto 23
4: StackMap locals: long long java.util.Collection
StackMap stack:
invokestatic java.lang.System.nanoTime:()J
lstore 12
start local 12 5: lload 9
iload 1
i2l
lload 7
lsub
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 14
start local 14 6: aload 0
iload 14
invokeinterface org.terracotta.offheapstore.buffersource.BufferSource.allocateBuffer:(I)Ljava/nio/ByteBuffer;
astore 15
start local 15 7: invokestatic java.lang.System.nanoTime:()J
lload 12
lsub
lstore 16
start local 16 8: aload 15
ifnonnull 15
9: iload 3
ifne 10
lload 9
iconst_1
lushr
iload 2
i2l
lcmp
ifge 11
10: StackMap locals: org.terracotta.offheapstore.buffersource.BufferSource int int int java.io.PrintStream long long long java.util.Collection long int java.nio.ByteBuffer long
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "An attempt was made to allocate more off-heap memory than the JVM can allow. The limit on off-heap memory size is given by the -XX:MaxDirectMemorySize command (or equivalent)."
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
lload 9
iconst_1
lushr
lstore 9
12: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 23
13: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Allocated failed at {}B, trying {}B chunks."
iload 14
i2l
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
lload 9
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
14: goto 23
15: StackMap locals:
StackMap stack:
aload 11
aload 15
invokeinterface java.util.Collection.add:(Ljava/lang/Object;)Z
pop
16: lload 7
iload 14
i2l
ladd
lstore 7
17: aload 4
ifnull 21
18: aload 4
ldc "%d,%d,%d,%d,%d,%d,%d,%d%n"
bipush 8
anewarray java.lang.Object
dup
iconst_0
invokestatic java.lang.System.nanoTime:()J
lload 5
lsub
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
19: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.getId:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_2
lload 16
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_3
iload 14
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_4
invokestatic org.terracotta.offheapstore.util.PhysicalMemory.freePhysicalMemory:()Ljava/lang/Long;
aastore
dup
iconst_5
invokestatic org.terracotta.offheapstore.util.PhysicalMemory.totalSwapSpace:()Ljava/lang/Long;
aastore
dup
bipush 6
invokestatic org.terracotta.offheapstore.util.PhysicalMemory.freeSwapSpace:()Ljava/lang/Long;
aastore
dup
bipush 7
invokestatic org.terracotta.offheapstore.util.PhysicalMemory.ourCommittedVirtualMemory:()Ljava/lang/Long;
aastore
20: invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
21: StackMap locals:
StackMap stack:
getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
invokeinterface org.slf4j.Logger.isDebugEnabled:()Z
ifeq 23
22: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "{}B chunk allocated"
iload 14
i2l
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
invokeinterface org.slf4j.Logger.debug:(Ljava/lang/String;Ljava/lang/Object;)V
end local 16 end local 15 end local 14 end local 12 23: StackMap locals: org.terracotta.offheapstore.buffersource.BufferSource int int int java.io.PrintStream long long long java.util.Collection
StackMap stack:
lload 7
iload 1
i2l
lcmp
iflt 4
24: aload 11
areturn
end local 11 end local 9 end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 source Lorg/terracotta/offheapstore/buffersource/BufferSource;
0 25 1 toAllocate I
0 25 2 minChunk I
0 25 3 fixed Z
0 25 4 allocatorLog Ljava/io/PrintStream;
0 25 5 start J
1 25 7 allocated J
2 25 9 currentChunkSize J
3 25 11 buffers Ljava/util/Collection<Ljava/nio/ByteBuffer;>;
5 23 12 blockStart J
6 23 14 currentAllocation I
7 23 15 b Ljava/nio/ByteBuffer;
8 23 16 blockDuration J
Signature: (Lorg/terracotta/offheapstore/buffersource/BufferSource;IIZLjava/io/PrintStream;J)Ljava/util/Collection<Ljava/nio/ByteBuffer;>;
MethodParameters:
Name Flags
source
toAllocate
minChunk
fixed
allocatorLog
start
private static <T> T uninterruptibleGet(java.util.concurrent.Future<T>);
descriptor: (Ljava/util/concurrent/Future;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: invokestatic java.lang.Thread.interrupted:()Z
istore 1
start local 1 1: StackMap locals: int
StackMap stack:
aload 0
invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
astore 4
2: iload 1
ifeq 4
3: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
4: StackMap locals: java.util.concurrent.Future int top top java.lang.Object
StackMap stack:
aload 4
areturn
5: StackMap locals: java.util.concurrent.Future int
StackMap stack: java.util.concurrent.ExecutionException
astore 2
start local 2 6: aload 2
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
instanceof java.lang.RuntimeException
ifeq 8
7: aload 2
invokevirtual java.util.concurrent.ExecutionException.getCause:()Ljava/lang/Throwable;
checkcast java.lang.RuntimeException
athrow
8: StackMap locals: java.util.concurrent.ExecutionException
StackMap stack:
new java.lang.RuntimeException
dup
aload 2
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 2 9: StackMap locals: java.util.concurrent.Future int
StackMap stack: java.lang.InterruptedException
pop
10: iconst_1
istore 1
11: goto 1
12: StackMap locals:
StackMap stack: java.lang.Throwable
astore 3
13: iload 1
ifeq 15
14: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
invokevirtual java.lang.Thread.interrupt:()V
15: StackMap locals: java.util.concurrent.Future int top java.lang.Throwable
StackMap stack:
aload 3
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 future Ljava/util/concurrent/Future<TT;>;
1 16 1 interrupted Z
6 9 2 e Ljava/util/concurrent/ExecutionException;
Exception table:
from to target type
1 2 5 Class java.util.concurrent.ExecutionException
1 2 9 Class java.lang.InterruptedException
1 2 12 any
5 12 12 any
Signature: <T:Ljava/lang/Object;>(Ljava/util/concurrent/Future<TT;>;)TT;
MethodParameters:
Name Flags
future
private static java.io.PrintStream createAllocatorLog(long, int, int);
descriptor: (JII)Ljava/io/PrintStream;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=3
start local 0 start local 2 start local 3 0: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.ALLOCATION_LOG_LOCATION:Ljava/lang/String;
invokestatic java.lang.System.getProperty:(Ljava/lang/String;)Ljava/lang/String;
astore 4
start local 4 1: aload 4
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: java.lang.String
StackMap stack:
ldc "allocation"
ldc ".csv"
new java.io.File
dup
aload 4
invokespecial java.io.File.<init>:(Ljava/lang/String;)V
invokestatic java.io.File.createTempFile:(Ljava/lang/String;Ljava/lang/String;Ljava/io/File;)Ljava/io/File;
astore 6
start local 6 4: new java.io.PrintStream
dup
aload 6
ldc "US-ASCII"
invokespecial java.io.PrintStream.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 5
end local 6 start local 5 5: goto 9
end local 5 StackMap locals:
StackMap stack: java.io.IOException
6: astore 6
start local 6 7: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.LOGGER:Lorg/slf4j/Logger;
ldc "Exception creating allocation log"
aload 6
invokeinterface org.slf4j.Logger.warn:(Ljava/lang/String;Ljava/lang/Throwable;)V
8: aconst_null
areturn
end local 6 start local 5 9: StackMap locals: java.io.PrintStream
StackMap stack:
aload 5
ldc "Timestamp: %s%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
new java.util.Date
dup
invokespecial java.util.Date.<init>:()V
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
10: aload 5
ldc "Allocating: %sB%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
lload 0
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
11: aload 5
ldc "Max Chunk: %sB%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 2
i2l
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
12: aload 5
ldc "Min Chunk: %sB%n"
iconst_1
anewarray java.lang.Object
dup
iconst_0
iload 3
i2l
invokestatic org.terracotta.offheapstore.util.DebuggingUtils.toBase2SuffixedString:(J)Ljava/lang/String;
aastore
invokevirtual java.io.PrintStream.printf:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;
pop
13: aload 5
areturn
end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 max J
0 14 2 maxChunk I
0 14 3 minChunk I
1 14 4 path Ljava/lang/String;
5 6 5 allocatorLogStream Ljava/io/PrintStream;
9 14 5 allocatorLogStream Ljava/io/PrintStream;
4 5 6 allocatorLogFile Ljava/io/File;
7 9 6 e Ljava/io/IOException;
Exception table:
from to target type
3 5 6 Class java.io.IOException
MethodParameters:
Name Flags
max
maxChunk
minChunk
static int[] $SWITCH_TABLE$org$terracotta$offheapstore$paging$UpfrontAllocatingPageSource$ThresholdDirection();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.$SWITCH_TABLE$org$terracotta$offheapstore$paging$UpfrontAllocatingPageSource$ThresholdDirection:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection.values:()[Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource$ThresholdDirection;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection.FALLING:Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource$ThresholdDirection;
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection.ordinal:()I
iconst_2
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection.RISING:Lorg/terracotta/offheapstore/paging/UpfrontAllocatingPageSource$ThresholdDirection;
invokevirtual org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection.ordinal:()I
iconst_1
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
dup
putstatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.$SWITCH_TABLE$org$terracotta$offheapstore$paging$UpfrontAllocatingPageSource$ThresholdDirection:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
private static int lambda$0(org.terracotta.offheapstore.paging.Page, org.terracotta.offheapstore.paging.Page);
descriptor: (Lorg/terracotta/offheapstore/paging/Page;Lorg/terracotta/offheapstore/paging/Page;)I
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
if_icmpne 2
1: aload 0
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.size:()I
isub
ireturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
aload 1
invokevirtual org.terracotta.offheapstore.paging.Page.address:()I
isub
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 a Lorg/terracotta/offheapstore/paging/Page;
0 3 1 b Lorg/terracotta/offheapstore/paging/Page;
private static java.util.Collection lambda$1(org.terracotta.offheapstore.buffersource.BufferSource, int, int, boolean, java.io.PrintStream, long);
descriptor: (Lorg/terracotta/offheapstore/buffersource/BufferSource;IIZLjava/io/PrintStream;J)Ljava/util/Collection;
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=7, locals=7, args_size=6
0: aload 0
iload 1
iload 2
iload 3
aload 4
lload 5
invokestatic org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource.bufferAllocation:(Lorg/terracotta/offheapstore/buffersource/BufferSource;IIZLjava/io/PrintStream;J)Ljava/util/Collection;
areturn
LocalVariableTable:
Start End Slot Name Signature
Exceptions:
throws java.lang.Exception
}
SourceFile: "UpfrontAllocatingPageSource.java"
NestMembers:
org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public abstract Entry = java.util.Map$Entry of java.util.Map
AllocatedRegion = org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$AllocatedRegion of org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
public final ThresholdDirection = org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource$ThresholdDirection of org.terracotta.offheapstore.paging.UpfrontAllocatingPageSource
public abstract Packing = org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator$Packing of org.terracotta.offheapstore.storage.allocator.PowerOfTwoAllocator