public class org.openjdk.jmh.profile.PausesProfiler 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.PausesProfiler
super_class: java.lang.Object
{
private org.openjdk.jmh.profile.PausesProfiler$Ticker ticker;
descriptor: Lorg/openjdk/jmh/profile/PausesProfiler$Ticker;
flags: (0x0002) ACC_PRIVATE
private org.openjdk.jmh.util.SampleBuffer buffer;
descriptor: Lorg/openjdk/jmh/util/SampleBuffer;
flags: (0x0002) ACC_PRIVATE
private long expectedNs;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private long thresh;
descriptor: J
flags: (0x0002) ACC_PRIVATE
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 "Pauses profiler"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/openjdk/jmh/profile/PausesProfiler;
public void <init>(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: new joptsimple.OptionParser
dup
invokespecial joptsimple.OptionParser.<init>:()V
astore 2
start local 2 2: aload 2
new org.openjdk.jmh.profile.ProfilerOptionFormatter
dup
ldc Lorg/openjdk/jmh/profile/PausesProfiler;
invokevirtual java.lang.Class.getCanonicalName:()Ljava/lang/String;
invokespecial org.openjdk.jmh.profile.ProfilerOptionFormatter.<init>:(Ljava/lang/String;)V
invokevirtual joptsimple.OptionParser.formatHelpWith:(Ljoptsimple/HelpFormatter;)V
3: aload 2
ldc "period"
ldc "Sampling period, in us. Smaller values improve accuracy, at the expense of more profiling overhead."
invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
4: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
getstatic org.openjdk.jmh.runner.options.IntegerValueConverter.POSITIVE:Lorg/openjdk/jmh/runner/options/IntegerValueConverter;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.withValuesConvertedBy:(Ljoptsimple/ValueConverter;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "int"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
bipush 50
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_0
anewarray java.lang.Integer
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
5: astore 3
start local 3 6: aload 2
ldc "threshold"
ldc "Threshold to filter pauses, in us. If unset, the threshold is figured during the initial calibration."
invokevirtual joptsimple.OptionParser.accepts:(Ljava/lang/String;Ljava/lang/String;)Ljoptsimple/OptionSpecBuilder;
7: invokevirtual joptsimple.OptionSpecBuilder.withRequiredArg:()Ljoptsimple/ArgumentAcceptingOptionSpec;
getstatic org.openjdk.jmh.runner.options.IntegerValueConverter.POSITIVE:Lorg/openjdk/jmh/runner/options/IntegerValueConverter;
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.withValuesConvertedBy:(Ljoptsimple/ValueConverter;)Ljoptsimple/ArgumentAcceptingOptionSpec;
ldc "int"
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.describedAs:(Ljava/lang/String;)Ljoptsimple/ArgumentAcceptingOptionSpec;
iconst_m1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iconst_0
anewarray java.lang.Integer
invokevirtual joptsimple.ArgumentAcceptingOptionSpec.defaultsTo:(Ljava/lang/Object;[Ljava/lang/Object;)Ljoptsimple/ArgumentAcceptingOptionSpec;
8: astore 4
start local 4 9: aload 1
aload 2
invokestatic org.openjdk.jmh.profile.ProfilerUtils.parseInitLine:(Ljava/lang/String;Ljoptsimple/OptionParser;)Ljoptsimple/OptionSet;
astore 5
start local 5 10: aload 0
getstatic java.util.concurrent.TimeUnit.MICROSECONDS:Ljava/util/concurrent/TimeUnit;
aload 5
aload 3
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2l
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
putfield org.openjdk.jmh.profile.PausesProfiler.expectedNs:J
11: aload 5
aload 4
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
iconst_m1
if_icmpeq 14
12: aload 0
getstatic java.util.concurrent.TimeUnit.MICROSECONDS:Ljava/util/concurrent/TimeUnit;
aload 5
aload 4
invokevirtual joptsimple.OptionSet.valueOf:(Ljoptsimple/OptionSpec;)Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
i2l
invokevirtual java.util.concurrent.TimeUnit.toNanos:(J)J
putfield org.openjdk.jmh.profile.PausesProfiler.thresh:J
13: goto 18
14: StackMap locals: org.openjdk.jmh.profile.PausesProfiler java.lang.String joptsimple.OptionParser joptsimple.OptionSpec joptsimple.OptionSpec joptsimple.OptionSet
StackMap stack:
aload 0
aload 0
invokevirtual org.openjdk.jmh.profile.PausesProfiler.calibrate:()J
putfield org.openjdk.jmh.profile.PausesProfiler.thresh:J
15: goto 18
StackMap locals:
StackMap stack: joptsimple.OptionException
16: astore 6
start local 6 17: new org.openjdk.jmh.profile.ProfilerException
dup
aload 6
invokevirtual joptsimple.OptionException.getMessage:()Ljava/lang/String;
invokespecial org.openjdk.jmh.profile.ProfilerException.<init>:(Ljava/lang/String;)V
athrow
end local 6 18: StackMap locals:
StackMap stack:
return
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 19 0 this Lorg/openjdk/jmh/profile/PausesProfiler;
0 19 1 initLine Ljava/lang/String;
2 19 2 parser Ljoptsimple/OptionParser;
6 19 3 optSamplePeriod Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
9 19 4 optThreshold Ljoptsimple/OptionSpec<Ljava/lang/Integer;>;
10 19 5 set Ljoptsimple/OptionSet;
17 18 6 e Ljoptsimple/OptionException;
Exception table:
from to target type
10 15 16 Class joptsimple.OptionException
Exceptions:
throws org.openjdk.jmh.profile.ProfilerException
MethodParameters:
Name Flags
initLine
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=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
new org.openjdk.jmh.util.SampleBuffer
dup
invokespecial org.openjdk.jmh.util.SampleBuffer.<init>:()V
putfield org.openjdk.jmh.profile.PausesProfiler.buffer:Lorg/openjdk/jmh/util/SampleBuffer;
1: aload 0
new org.openjdk.jmh.profile.PausesProfiler$Ticker
dup
aload 0
aload 0
getfield org.openjdk.jmh.profile.PausesProfiler.buffer:Lorg/openjdk/jmh/util/SampleBuffer;
invokespecial org.openjdk.jmh.profile.PausesProfiler$Ticker.<init>:(Lorg/openjdk/jmh/profile/PausesProfiler;Lorg/openjdk/jmh/util/SampleBuffer;)V
putfield org.openjdk.jmh.profile.PausesProfiler.ticker:Lorg/openjdk/jmh/profile/PausesProfiler$Ticker;
2: aload 0
getfield org.openjdk.jmh.profile.PausesProfiler.ticker:Lorg/openjdk/jmh/profile/PausesProfiler$Ticker;
invokevirtual org.openjdk.jmh.profile.PausesProfiler$Ticker.start:()V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/openjdk/jmh/profile/PausesProfiler;
0 4 1 benchmarkParams Lorg/openjdk/jmh/infra/BenchmarkParams;
0 4 2 iterationParams Lorg/openjdk/jmh/infra/IterationParams;
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=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.openjdk.jmh.profile.PausesProfiler.ticker:Lorg/openjdk/jmh/profile/PausesProfiler$Ticker;
invokevirtual org.openjdk.jmh.profile.PausesProfiler$Ticker.interrupt:()V
1: aload 0
getfield org.openjdk.jmh.profile.PausesProfiler.ticker:Lorg/openjdk/jmh/profile/PausesProfiler$Ticker;
invokevirtual org.openjdk.jmh.profile.PausesProfiler$Ticker.join:()V
2: goto 4
StackMap locals:
StackMap stack: java.lang.InterruptedException
3: pop
4: StackMap locals:
StackMap stack:
new org.openjdk.jmh.profile.PausesProfiler$PausesProfilerResult
dup
aload 0
getfield org.openjdk.jmh.profile.PausesProfiler.buffer:Lorg/openjdk/jmh/util/SampleBuffer;
invokespecial org.openjdk.jmh.profile.PausesProfiler$PausesProfilerResult.<init>:(Lorg/openjdk/jmh/util/SampleBuffer;)V
invokestatic java.util.Collections.singletonList:(Ljava/lang/Object;)Ljava/util/List;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/openjdk/jmh/profile/PausesProfiler;
0 5 1 benchmarkParams Lorg/openjdk/jmh/infra/BenchmarkParams;
0 5 2 iterationParams Lorg/openjdk/jmh/infra/IterationParams;
0 5 3 result Lorg/openjdk/jmh/results/IterationResult;
Exception table:
from to target type
1 2 3 Class java.lang.InterruptedException
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
result
private long calibrate();
descriptor: ()J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=11, args_size=1
start local 0 0: new org.openjdk.jmh.util.SampleBuffer
dup
invokespecial org.openjdk.jmh.util.SampleBuffer.<init>:()V
astore 1
start local 1 1: invokestatic java.lang.System.nanoTime:()J
lstore 2
start local 2 2: iconst_0
istore 4
start local 4 3: goto 12
4: StackMap locals: org.openjdk.jmh.util.SampleBuffer long int
StackMap stack:
aload 0
getfield org.openjdk.jmh.profile.PausesProfiler.expectedNs:J
invokestatic java.util.concurrent.locks.LockSupport.parkNanos:(J)V
5: invokestatic java.lang.System.nanoTime:()J
lstore 5
start local 5 6: lload 5
lload 2
lsub
lstore 7
start local 7 7: lload 7
aload 0
getfield org.openjdk.jmh.profile.PausesProfiler.expectedNs:J
lsub
lstore 9
start local 9 8: lload 9
lconst_0
lcmp
ifle 10
9: aload 1
lload 9
invokevirtual org.openjdk.jmh.util.SampleBuffer.add:(J)V
10: StackMap locals: long long long
StackMap stack:
lload 5
lstore 2
end local 9 end local 7 end local 5 11: iinc 4 1
StackMap locals:
StackMap stack:
12: iload 4
sipush 10000
if_icmplt 4
end local 4 13: aload 1
dconst_1
invokevirtual org.openjdk.jmh.util.SampleBuffer.getStatistics:(D)Lorg/openjdk/jmh/util/Statistics;
astore 4
start local 4 14: aload 4
invokeinterface org.openjdk.jmh.util.Statistics.getMax:()D
d2l
lreturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/openjdk/jmh/profile/PausesProfiler;
1 15 1 buf Lorg/openjdk/jmh/util/SampleBuffer;
2 15 2 lastTime J
3 13 4 c I
6 11 5 time J
7 11 7 actualNs J
8 11 9 delta J
14 15 4 stat Lorg/openjdk/jmh/util/Statistics;
}
SourceFile: "PausesProfiler.java"
NestMembers:
org.openjdk.jmh.profile.PausesProfiler$PausesProfilerResult org.openjdk.jmh.profile.PausesProfiler$PausesProfilerResult$JoiningAggregator org.openjdk.jmh.profile.PausesProfiler$Ticker
InnerClasses:
PausesProfilerResult = org.openjdk.jmh.profile.PausesProfiler$PausesProfilerResult of org.openjdk.jmh.profile.PausesProfiler
private Ticker = org.openjdk.jmh.profile.PausesProfiler$Ticker of org.openjdk.jmh.profile.PausesProfiler