public class org.openjdk.jmh.profile.GCProfiler implements org.openjdk.jmh.profile.InternalProfiler
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.openjdk.jmh.profile.GCProfiler
super_class: java.lang.Object
{
private long beforeTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long beforeGCCount;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long beforeGCTime;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot beforeAllocated;
descriptor: Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/openjdk/jmh/profile/GCProfiler;
Exceptions:
throws org.openjdk.jmh.profile.ProfilerException
public java.lang.String getDescription();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "GC profiling via standard MBeans"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/GCProfiler;
public void beforeIteration(org.openjdk.jmh.infra.BenchmarkParams, org.openjdk.jmh.infra.IterationParams);
descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;Lorg/openjdk/jmh/infra/IterationParams;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.startChurnProfile:()V
1: lconst_0
lstore 3
start local 3 2: lconst_0
lstore 5
start local 5 3: invokestatic java.lang.management.ManagementFactory.getGarbageCollectorMXBeans:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 7
StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams long long top java.util.Iterator
StackMap stack:
4: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.management.GarbageCollectorMXBean
astore 7
start local 7 5: lload 5
aload 7
invokeinterface java.lang.management.GarbageCollectorMXBean.getCollectionCount:()J
ladd
lstore 5
6: lload 3
aload 7
invokeinterface java.lang.management.GarbageCollectorMXBean.getCollectionTime:()J
ladd
lstore 3
end local 7 7: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
8: aload 0
lload 5
putfield org.openjdk.jmh.profile.GCProfiler.beforeGCCount:J
9: aload 0
lload 3
putfield org.openjdk.jmh.profile.GCProfiler.beforeGCTime:J
10: aload 0
invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.getSnapshot:()Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
putfield org.openjdk.jmh.profile.GCProfiler.beforeAllocated:Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
11: aload 0
invokestatic java.lang.System.nanoTime:()J
putfield org.openjdk.jmh.profile.GCProfiler.beforeTime:J
12: return
end local 5 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/openjdk/jmh/profile/GCProfiler;
0 13 1 benchmarkParams Lorg/openjdk/jmh/infra/BenchmarkParams;
0 13 2 iterationParams Lorg/openjdk/jmh/infra/IterationParams;
2 13 3 gcTime J
3 13 5 gcCount J
5 7 7 bean Ljava/lang/management/GarbageCollectorMXBean;
MethodParameters:
Name Flags
benchmarkParams
iterationParams
public java.util.Collection<? extends org.openjdk.jmh.results.Result> afterIteration(org.openjdk.jmh.infra.BenchmarkParams, org.openjdk.jmh.infra.IterationParams, org.openjdk.jmh.results.IterationResult);
descriptor: (Lorg/openjdk/jmh/infra/BenchmarkParams;Lorg/openjdk/jmh/infra/IterationParams;Lorg/openjdk/jmh/results/IterationResult;)Ljava/util/Collection;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=19, args_size=4
start local 0 start local 1 start local 2 start local 3 0: invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.finishChurnProfile:()V
1: invokestatic java.lang.System.nanoTime:()J
lstore 4
start local 4 2: lconst_0
lstore 6
start local 6 3: lconst_0
lstore 8
start local 8 4: invokestatic java.lang.management.ManagementFactory.getGarbageCollectorMXBeans:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 11
goto 8
StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams org.openjdk.jmh.results.IterationResult long long long top java.util.Iterator
StackMap stack:
5: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.management.GarbageCollectorMXBean
astore 10
start local 10 6: lload 8
aload 10
invokeinterface java.lang.management.GarbageCollectorMXBean.getCollectionCount:()J
ladd
lstore 8
7: lload 6
aload 10
invokeinterface java.lang.management.GarbageCollectorMXBean.getCollectionTime:()J
ladd
lstore 6
end local 10 8: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
9: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 10
start local 10 10: aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeAllocated:Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
getstatic org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot.EMPTY:Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
if_acmpne 16
11: aload 10
new org.openjdk.jmh.results.ScalarResult
dup
ldc "\u00B7gc.alloc.rate"
12: ldc NaN
13: ldc "MB/sec"
getstatic org.openjdk.jmh.results.AggregationPolicy.AVG:Lorg/openjdk/jmh/results/AggregationPolicy;
invokespecial org.openjdk.jmh.results.ScalarResult.<init>:(Ljava/lang/String;DLjava/lang/String;Lorg/openjdk/jmh/results/AggregationPolicy;)V
14: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
15: goto 34
16: StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams org.openjdk.jmh.results.IterationResult long long long java.util.List
StackMap stack:
invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.getSnapshot:()Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
astore 11
start local 11 17: aload 11
aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeAllocated:Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
invokevirtual org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot.subtract:(Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;)J
lstore 12
start local 12 18: aload 10
19: new org.openjdk.jmh.results.ScalarResult
dup
ldc "\u00B7gc.alloc.rate"
20: lload 4
aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeTime:J
lcmp
ifeq 22
21: dconst_1
lload 12
l2d
dmul
ldc 1024.0
ddiv
ldc 1024.0
ddiv
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
lconst_1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
l2d
dmul
lload 4
aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeTime:J
lsub
l2d
ddiv
goto 23
22: StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams org.openjdk.jmh.results.IterationResult long long long java.util.List org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot long
StackMap stack: java.util.List new 19 new 19 java.lang.String
ldc NaN
23: StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams org.openjdk.jmh.results.IterationResult long long long java.util.List org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot long
StackMap stack: java.util.List new 19 new 19 java.lang.String double
ldc "MB/sec"
getstatic org.openjdk.jmh.results.AggregationPolicy.AVG:Lorg/openjdk/jmh/results/AggregationPolicy;
invokespecial org.openjdk.jmh.results.ScalarResult.<init>:(Ljava/lang/String;DLjava/lang/String;Lorg/openjdk/jmh/results/AggregationPolicy;)V
24: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
25: lload 12
lconst_0
lcmp
ifeq 34
26: aload 3
invokevirtual org.openjdk.jmh.results.IterationResult.getMetadata:()Lorg/openjdk/jmh/results/IterationResultMetaData;
invokevirtual org.openjdk.jmh.results.IterationResultMetaData.getAllOps:()J
lstore 14
start local 14 27: aload 10
28: new org.openjdk.jmh.results.ScalarResult
dup
ldc "\u00B7gc.alloc.rate.norm"
29: lload 14
lconst_0
lcmp
ifeq 31
30: dconst_1
lload 12
l2d
dmul
lload 14
l2d
ddiv
goto 32
31: StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams org.openjdk.jmh.results.IterationResult long long long java.util.List org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot long long
StackMap stack: java.util.List new 28 new 28 java.lang.String
ldc NaN
32: StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams org.openjdk.jmh.results.IterationResult long long long java.util.List org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot long long
StackMap stack: java.util.List new 28 new 28 java.lang.String double
ldc "B/op"
getstatic org.openjdk.jmh.results.AggregationPolicy.AVG:Lorg/openjdk/jmh/results/AggregationPolicy;
invokespecial org.openjdk.jmh.results.ScalarResult.<init>:(Ljava/lang/String;DLjava/lang/String;Lorg/openjdk/jmh/results/AggregationPolicy;)V
33: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 14 end local 12 end local 11 34: StackMap locals:
StackMap stack:
aload 10
new org.openjdk.jmh.results.ScalarResult
dup
35: ldc "\u00B7gc.count"
36: lload 8
aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeGCCount:J
lsub
l2d
37: ldc "counts"
38: getstatic org.openjdk.jmh.results.AggregationPolicy.SUM:Lorg/openjdk/jmh/results/AggregationPolicy;
invokespecial org.openjdk.jmh.results.ScalarResult.<init>:(Ljava/lang/String;DLjava/lang/String;Lorg/openjdk/jmh/results/AggregationPolicy;)V
39: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
40: lload 8
aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeGCCount:J
lcmp
ifne 41
lload 6
aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeGCTime:J
lcmp
ifeq 47
41: StackMap locals:
StackMap stack:
aload 10
new org.openjdk.jmh.results.ScalarResult
dup
42: ldc "\u00B7gc.time"
43: lload 6
aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeGCTime:J
lsub
l2d
44: ldc "ms"
45: getstatic org.openjdk.jmh.results.AggregationPolicy.SUM:Lorg/openjdk/jmh/results/AggregationPolicy;
invokespecial org.openjdk.jmh.results.ScalarResult.<init>:(Ljava/lang/String;DLjava/lang/String;Lorg/openjdk/jmh/results/AggregationPolicy;)V
46: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
47: StackMap locals:
StackMap stack:
invokestatic org.openjdk.jmh.profile.GCProfiler$VMSupport.getChurn:()Lorg/openjdk/jmh/util/Multiset;
astore 11
start local 11 48: aload 11
invokeinterface org.openjdk.jmh.util.Multiset.keys:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 13
goto 68
StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams org.openjdk.jmh.results.IterationResult long long long java.util.List org.openjdk.jmh.util.Multiset top java.util.Iterator
StackMap stack:
49: aload 13
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 12
start local 12 50: lload 4
aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeTime:J
lcmp
ifeq 52
51: dconst_1
aload 11
aload 12
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
l2d
dmul
getstatic java.util.concurrent.TimeUnit.SECONDS:Ljava/util/concurrent/TimeUnit;
lconst_1
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
l2d
dmul
lload 4
aload 0
getfield org.openjdk.jmh.profile.GCProfiler.beforeTime:J
lsub
l2d
ddiv
ldc 1024.0
ddiv
ldc 1024.0
ddiv
goto 53
52: StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams org.openjdk.jmh.results.IterationResult long long long java.util.List org.openjdk.jmh.util.Multiset java.lang.String java.util.Iterator
StackMap stack:
ldc NaN
53: StackMap locals:
StackMap stack: double
dstore 14
start local 14 54: dconst_1
aload 11
aload 12
invokeinterface org.openjdk.jmh.util.Multiset.count:(Ljava/lang/Object;)J
l2d
dmul
aload 3
invokevirtual org.openjdk.jmh.results.IterationResult.getMetadata:()Lorg/openjdk/jmh/results/IterationResultMetaData;
invokevirtual org.openjdk.jmh.results.IterationResultMetaData.getAllOps:()J
l2d
ddiv
dstore 16
start local 16 55: aload 12
ldc " "
ldc "_"
invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 18
start local 18 56: aload 10
new org.openjdk.jmh.results.ScalarResult
dup
57: new java.lang.StringBuilder
dup
ldc "\u00B7gc.churn."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 18
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
58: dload 14
59: ldc "MB/sec"
60: getstatic org.openjdk.jmh.results.AggregationPolicy.AVG:Lorg/openjdk/jmh/results/AggregationPolicy;
invokespecial org.openjdk.jmh.results.ScalarResult.<init>:(Ljava/lang/String;DLjava/lang/String;Lorg/openjdk/jmh/results/AggregationPolicy;)V
61: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
62: aload 10
new org.openjdk.jmh.results.ScalarResult
dup
63: new java.lang.StringBuilder
dup
ldc "\u00B7gc.churn."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 18
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ".norm"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
64: dload 16
65: ldc "B/op"
66: getstatic org.openjdk.jmh.results.AggregationPolicy.AVG:Lorg/openjdk/jmh/results/AggregationPolicy;
invokespecial org.openjdk.jmh.results.ScalarResult.<init>:(Ljava/lang/String;DLjava/lang/String;Lorg/openjdk/jmh/results/AggregationPolicy;)V
67: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 18 end local 16 end local 14 end local 12 68: StackMap locals: org.openjdk.jmh.profile.GCProfiler org.openjdk.jmh.infra.BenchmarkParams org.openjdk.jmh.infra.IterationParams org.openjdk.jmh.results.IterationResult long long long java.util.List org.openjdk.jmh.util.Multiset top java.util.Iterator
StackMap stack:
aload 13
invokeinterface java.util.Iterator.hasNext:()Z
ifne 49
69: aload 10
areturn
end local 11 end local 10 end local 8 end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lorg/openjdk/jmh/profile/GCProfiler;
0 70 1 benchmarkParams Lorg/openjdk/jmh/infra/BenchmarkParams;
0 70 2 iterationParams Lorg/openjdk/jmh/infra/IterationParams;
0 70 3 iResult Lorg/openjdk/jmh/results/IterationResult;
2 70 4 afterTime J
3 70 6 gcTime J
4 70 8 gcCount J
6 8 10 bean Ljava/lang/management/GarbageCollectorMXBean;
10 70 10 results Ljava/util/List<Lorg/openjdk/jmh/results/ScalarResult;>;
17 34 11 newSnapshot Lorg/openjdk/jmh/profile/GCProfiler$HotspotAllocationSnapshot;
18 34 12 allocated J
27 34 14 allOps J
48 70 11 churn Lorg/openjdk/jmh/util/Multiset<Ljava/lang/String;>;
50 68 12 space Ljava/lang/String;
54 68 14 churnRate D
55 68 16 churnNorm D
56 68 18 spaceName Ljava/lang/String;
Signature: (Lorg/openjdk/jmh/infra/BenchmarkParams;Lorg/openjdk/jmh/infra/IterationParams;Lorg/openjdk/jmh/results/IterationResult;)Ljava/util/Collection<+Lorg/openjdk/jmh/results/Result;>;
MethodParameters:
Name Flags
benchmarkParams
iterationParams
iResult
}
SourceFile: "GCProfiler.java"
NestMembers:
org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot org.openjdk.jmh.profile.GCProfiler$VMSupport org.openjdk.jmh.profile.GCProfiler$VMSupport$1
InnerClasses:
HotspotAllocationSnapshot = org.openjdk.jmh.profile.GCProfiler$HotspotAllocationSnapshot of org.openjdk.jmh.profile.GCProfiler
VMSupport = org.openjdk.jmh.profile.GCProfiler$VMSupport of org.openjdk.jmh.profile.GCProfiler