public class org.ehcache.impl.internal.store.offheap.HeuristicConfiguration
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.ehcache.impl.internal.store.offheap.HeuristicConfiguration
  super_class: java.lang.Object
{
  private static final java.lang.String MINIMUM_MAX_MEMORY;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "1M"

  private static final long MINIMUM_MAX_MEMORY_IN_BYTES;
    descriptor: J
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final int IDEAL_MAX_SEGMENT_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 33554432

  private static final int MAXIMUM_CHUNK_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1073741824

  private static final int MINIMUM_SEGMENT_COUNT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int MAXIMUM_SEGMENT_COUNT;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16384

  private static final int MAXIMAL_SEGMENT_SIZE_RATIO;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  private static final int INITIAL_SEGMENT_SIZE_RATIO;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  private static final int ASSUMED_KEY_VALUE_SIZE;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1024

  private static final int AGGRESSIVE_INITIAL_SEGMENT_SIZE_RATIO;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  private final long maximumSize;
    descriptor: J
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int idealMaxSegmentSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int maximumChunkSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int minimumSegmentCount;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int maximumSegmentCount;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int maximalSegmentSizeRatio;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int initialSegmentSizeRatio;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int assumedKeyValueSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 31
            ldc "1M"
            invokestatic org.ehcache.impl.internal.store.offheap.MemorySizeParser.parse:(Ljava/lang/String;)J
            putstatic org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.MINIMUM_MAX_MEMORY_IN_BYTES:J
         1: .line 41
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
        start local 1 // long maximumSize
         0: .line 53
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 54
            lload 1 /* maximumSize */
            getstatic org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.MINIMUM_MAX_MEMORY_IN_BYTES:J
            lcmp
            ifge 3
         2: .line 55
            new java.lang.IllegalArgumentException
            dup
            ldc "The value of maxBytesLocalOffHeap is less than the minimum allowed value of 1M. Reconfigure maxBytesLocalOffHeap in ehcache.xml or programmatically."
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 58
      StackMap locals: org.ehcache.impl.internal.store.offheap.HeuristicConfiguration long
      StackMap stack:
            aload 0 /* this */
            lload 1 /* maximumSize */
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximumSize:J
         4: .line 60
            ldc "aggressive"
            iconst_0
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedBooleanConfigProperty:(Ljava/lang/String;Z)Z
            ifeq 13
         5: .line 61
            aload 0 /* this */
            ldc "idealMaxSegmentSize"
            ldc 33554432
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.idealMaxSegmentSize:I
         6: .line 62
            aload 0 /* this */
            ldc "maximumChunkSize"
            ldc 1073741824
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximumChunkSize:I
         7: .line 63
            aload 0 /* this */
            ldc "minimumSegmentCount"
            ldc 16
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.minimumSegmentCount:I
         8: .line 64
            aload 0 /* this */
            ldc "maximumSegmentCount"
            ldc 16384
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximumSegmentCount:I
         9: .line 65
            aload 0 /* this */
            ldc "maximalSegmentSizeRatio"
            ldc 4
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximalSegmentSizeRatio:I
        10: .line 66
            aload 0 /* this */
            ldc "initialSegmentSizeRatio"
            lconst_1
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.initialSegmentSizeRatio:I
        11: .line 67
            aload 0 /* this */
            ldc "assumedKeyValueSize"
            ldc 1024
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.assumedKeyValueSize:I
        12: .line 68
            goto 20
        13: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc "idealMaxSegmentSize"
            ldc 33554432
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.idealMaxSegmentSize:I
        14: .line 70
            aload 0 /* this */
            ldc "maximumChunkSize"
            ldc 1073741824
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximumChunkSize:I
        15: .line 71
            aload 0 /* this */
            ldc "minimumSegmentCount"
            ldc 16
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.minimumSegmentCount:I
        16: .line 72
            aload 0 /* this */
            ldc "maximumSegmentCount"
            ldc 16384
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximumSegmentCount:I
        17: .line 73
            aload 0 /* this */
            ldc "maximalSegmentSizeRatio"
            ldc 4
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximalSegmentSizeRatio:I
        18: .line 74
            aload 0 /* this */
            ldc "initialSegmentSizeRatio"
            ldc 16
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.initialSegmentSizeRatio:I
        19: .line 75
            aload 0 /* this */
            ldc "assumedKeyValueSize"
            ldc 1024
            invokestatic org.ehcache.impl.internal.store.offheap.OffHeapStoreUtils.getAdvancedMemorySizeConfigProperty:(Ljava/lang/String;J)J
            l2i
            putfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.assumedKeyValueSize:I
        20: .line 77
      StackMap locals:
      StackMap stack:
            return
        end local 1 // long maximumSize
        end local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   21     0         this  Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;
            0   21     1  maximumSize  J
    MethodParameters:
             Name  Flags
      maximumSize  

  public long getMaximumSize();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
         0: .line 80
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximumSize:J
            lreturn
        end local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;

  public int getMinimumChunkSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
         0: .line 84
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximumChunkSize:I
            i2l
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximalSegmentSizeRatio:I
            i2l
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMaximumSize:()J
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getConcurrency:()I
            i2l
            ldiv
            lmul
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            ireturn
        end local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;

  public int getMaximumChunkSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
         0: .line 88
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMaximumSize:()J
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximumChunkSize:I
            i2l
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            ireturn
        end local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;

  public int getConcurrency();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
         0: .line 92
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.maximumSegmentCount:I
            i2l
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.minimumSegmentCount:I
            i2l
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMaximumSize:()J
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.idealMaxSegmentSize:I
            i2l
            ldiv
            invokestatic java.lang.Math.max:(JJ)J
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            invokestatic java.lang.Integer.highestOneBit:(I)I
            ireturn
        end local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;

  public int getInitialSegmentTableSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
         0: .line 96
            iconst_1
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getSegmentDataPageSize:()I
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.assumedKeyValueSize:I
            idiv
            invokestatic java.lang.Math.max:(II)I
            ireturn
        end local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;

  public int getSegmentDataPageSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
         0: .line 100
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMinimumChunkSize:()I
            i2l
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getInitialSegmentCapacity:()J
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.assumedKeyValueSize:I
            i2l
            lmul
            invokestatic java.lang.Math.min:(JJ)J
            l2i
            invokestatic java.lang.Integer.highestOneBit:(I)I
            ireturn
        end local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;

  private long getInitialSegmentCapacity();
    descriptor: ()J
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
         0: .line 104
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMaximumSize:()J
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getConcurrency:()I
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.initialSegmentSizeRatio:I
            imul
            aload 0 /* this */
            getfield org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.assumedKeyValueSize:I
            bipush 16
            iadd
            imul
            i2l
            ldiv
            lreturn
        end local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
         0: .line 109
            new java.lang.StringBuilder
            dup
            ldc "Heuristic Configuration: \nMaximum Size (specified)   : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMaximumSize:()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\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         1: .line 110
            ldc "Minimum Chunk Size         : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMinimumChunkSize:()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;
         2: .line 111
            ldc "Maximum Chunk Size         : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getMaximumChunkSize:()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;
         3: .line 112
            ldc "Concurrency                : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getConcurrency:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 113
            ldc "Initial Segment Table Size : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getInitialSegmentTableSize:()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 " slots\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 114
            ldc "Segment Data Page Size     : "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual org.ehcache.impl.internal.store.offheap.HeuristicConfiguration.getSegmentDataPageSize:()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;
         6: .line 109
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* sb */
        start local 1 // java.lang.String sb
         7: .line 115
            aload 1 /* sb */
            areturn
        end local 1 // java.lang.String sb
        end local 0 // org.ehcache.impl.internal.store.offheap.HeuristicConfiguration this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/ehcache/impl/internal/store/offheap/HeuristicConfiguration;
            7    8     1    sb  Ljava/lang/String;
}
SourceFile: "HeuristicConfiguration.java"