final class org.graalvm.polybench.CompilationTimeMetric implements org.graalvm.polybench.Metric
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.graalvm.polybench.CompilationTimeMetric
super_class: java.lang.Object
{
private static final java.util.logging.Logger LOG;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String TRUFFLE_COMPILATION_EVENT;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "org.graalvm.compiler.truffle.Compilation"
private final org.graalvm.polybench.CompilationTimeMetric$MetricType metricType;
descriptor: Lorg/graalvm/polybench/CompilationTimeMetric$MetricType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean supported;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.Object recording;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.lang.Object snapshot;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/polybench/CompilationTimeMetric;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putstatic org.graalvm.polybench.CompilationTimeMetric.LOG:Ljava/util/logging/Logger;
1: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(org.graalvm.polybench.CompilationTimeMetric$MetricType);
descriptor: (Lorg/graalvm/polybench/CompilationTimeMetric$MetricType;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.graalvm.polybench.CompilationTimeMetric.metricType:Lorg/graalvm/polybench/CompilationTimeMetric$MetricType;
2: aload 0
invokestatic org.graalvm.polybench.JFRSupport.isAvailable:()Z
putfield org.graalvm.polybench.CompilationTimeMetric.supported:Z
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
0 4 1 metricType Lorg/graalvm/polybench/CompilationTimeMetric$MetricType;
MethodParameters:
Name Flags
metricType
public void validateConfig(org.graalvm.polybench.Config, java.util.Map<java.lang.String, java.lang.String>);
descriptor: (Lorg/graalvm/polybench/Config;Ljava/util/Map;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ldc "engine.BackgroundCompilation"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.String
invokestatic java.lang.Boolean.parseBoolean:(Ljava/lang/String;)Z
ifeq 2
1: new java.lang.IllegalStateException
dup
ldc "The Compile Time Metric cannot be used with a background compilation.\nRemove the 'engine.BackgroundCompilation=true' option."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
0 3 1 config Lorg/graalvm/polybench/Config;
0 3 2 polyglotOptions Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
Signature: (Lorg/graalvm/polybench/Config;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
MethodParameters:
Name Flags
config
polyglotOptions
public java.util.Map<java.lang.String, java.lang.String> getEngineOptions(org.graalvm.polybench.Config);
descriptor: (Lorg/graalvm/polybench/Config;)Ljava/util/Map;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: ldc "engine.BackgroundCompilation"
ldc "false"
invokestatic java.util.Collections.singletonMap:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/util/Map;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
0 1 1 config Lorg/graalvm/polybench/Config;
Signature: (Lorg/graalvm/polybench/Config;)Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
MethodParameters:
Name Flags
config
public java.lang.String unit();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "ms"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
public java.lang.String name();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "compilation time"
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
public void beforeIteration(boolean, int, org.graalvm.polybench.Config);
descriptor: (ZILorg/graalvm/polybench/Config;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.supported:Z
ifeq 5
1: aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.recording:Ljava/lang/Object;
ifnonnull 3
2: aload 0
ldc "org.graalvm.compiler.truffle.Compilation"
invokestatic org.graalvm.polybench.JFRSupport.startRecording:(Ljava/lang/String;)Ljava/lang/Object;
putfield org.graalvm.polybench.CompilationTimeMetric.recording:Ljava/lang/Object;
3: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.snapshot:Ljava/lang/Object;
iconst_0
invokestatic org.graalvm.polybench.JFRSupport.disposeRecording:(Ljava/lang/Object;Z)V
4: aload 0
aconst_null
putfield org.graalvm.polybench.CompilationTimeMetric.snapshot:Ljava/lang/Object;
5: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
0 6 1 warmup Z
0 6 2 iteration I
0 6 3 config Lorg/graalvm/polybench/Config;
MethodParameters:
Name Flags
warmup
iteration
config
public void afterIteration(boolean, int, org.graalvm.polybench.Config);
descriptor: (ZILorg/graalvm/polybench/Config;)V
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.graalvm.polybench.CompilationTimeMetric.supported:Z
ifeq 6
1: aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.recording:Ljava/lang/Object;
ifnonnull 3
2: new java.lang.IllegalStateException
dup
ldc "Missing JFR recording."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.snapshot:Ljava/lang/Object;
ifnull 5
4: new java.lang.IllegalStateException
dup
ldc "Existing JFR snapshot."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.recording:Ljava/lang/Object;
invokestatic org.graalvm.polybench.JFRSupport.snapshotRecording:(Ljava/lang/Object;)Ljava/lang/Object;
putfield org.graalvm.polybench.CompilationTimeMetric.snapshot:Ljava/lang/Object;
6: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
0 7 1 warmup Z
0 7 2 iteration I
0 7 3 config Lorg/graalvm/polybench/Config;
MethodParameters:
Name Flags
warmup
iteration
config
public void reset();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.supported:Z
ifeq 5
1: aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.recording:Ljava/lang/Object;
iconst_1
invokestatic org.graalvm.polybench.JFRSupport.disposeRecording:(Ljava/lang/Object;Z)V
2: aload 0
aconst_null
putfield org.graalvm.polybench.CompilationTimeMetric.recording:Ljava/lang/Object;
3: aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.snapshot:Ljava/lang/Object;
iconst_0
invokestatic org.graalvm.polybench.JFRSupport.disposeRecording:(Ljava/lang/Object;Z)V
4: aload 0
aconst_null
putfield org.graalvm.polybench.CompilationTimeMetric.snapshot:Ljava/lang/Object;
5: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
public java.util.Optional<java.lang.Double> reportAfterIteration(org.graalvm.polybench.Config);
descriptor: (Lorg/graalvm/polybench/Config;)Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.supported:Z
ifeq 1
aload 0
invokevirtual org.graalvm.polybench.CompilationTimeMetric.computeCumulativeTime:()Ljava/util/Optional;
goto 2
StackMap locals:
StackMap stack:
1: dconst_0
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
StackMap locals:
StackMap stack: java.util.Optional
2: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
0 3 1 config Lorg/graalvm/polybench/Config;
Signature: (Lorg/graalvm/polybench/Config;)Ljava/util/Optional<Ljava/lang/Double;>;
MethodParameters:
Name Flags
config
public java.util.Optional<java.lang.Double> reportAfterAll();
descriptor: ()Ljava/util/Optional;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.supported:Z
ifeq 1
aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.recording:Ljava/lang/Object;
ifnull 1
aload 0
invokevirtual org.graalvm.polybench.CompilationTimeMetric.computeCumulativeTime:()Ljava/util/Optional;
goto 2
StackMap locals:
StackMap stack:
1: dconst_0
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
StackMap locals:
StackMap stack: java.util.Optional
2: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
Signature: ()Ljava/util/Optional<Ljava/lang/Double;>;
private java.util.Optional<java.lang.Double> computeCumulativeTime();
descriptor: ()Ljava/util/Optional;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.snapshot:Ljava/lang/Object;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
ldc "No snapshot."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
dconst_1
aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.snapshot:Ljava/lang/Object;
ldc "org.graalvm.compiler.truffle.Compilation"
aload 0
getfield org.graalvm.polybench.CompilationTimeMetric.metricType:Lorg/graalvm/polybench/CompilationTimeMetric$MetricType;
invokevirtual org.graalvm.polybench.CompilationTimeMetric$MetricType.getFieldName:()Ljava/lang/String;
invokestatic org.graalvm.polybench.JFRSupport.computeCumulativeTime:(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/String;)J
l2d
dmul
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokestatic java.util.Optional.of:(Ljava/lang/Object;)Ljava/util/Optional;
3: areturn
4: StackMap locals:
StackMap stack: java.io.IOException
astore 1
start local 1 5: getstatic org.graalvm.polybench.CompilationTimeMetric.LOG:Ljava/util/logging/Logger;
getstatic java.util.logging.Level.SEVERE:Ljava/util/logging/Level;
ldc "Cannot write recording."
aload 1
invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;Ljava/lang/Throwable;)V
6: invokestatic java.util.Optional.empty:()Ljava/util/Optional;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/graalvm/polybench/CompilationTimeMetric;
5 7 1 ioe Ljava/io/IOException;
Exception table:
from to target type
2 3 4 Class java.io.IOException
Signature: ()Ljava/util/Optional<Ljava/lang/Double;>;
}
SourceFile: "CompilationTimeMetric.java"
NestMembers:
org.graalvm.polybench.CompilationTimeMetric$MetricType
InnerClasses:
final MetricType = org.graalvm.polybench.CompilationTimeMetric$MetricType of org.graalvm.polybench.CompilationTimeMetric