src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationStatistics.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File
*** old/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationStatistics.java Mon Mar 20 17:38:28 2017
--- new/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationStatistics.java Mon Mar 20 17:38:28 2017
*** 42,52 ****
--- 42,53 ----
import java.util.concurrent.ConcurrentLinkedDeque;
import org.graalvm.compiler.debug.CSVUtil;
import org.graalvm.compiler.debug.Management;
import org.graalvm.compiler.options.Option;
! import org.graalvm.compiler.options.OptionValue;
! import org.graalvm.compiler.options.OptionKey;
+ import org.graalvm.compiler.options.OptionValues;
import com.sun.management.ThreadMXBean;
import jdk.vm.ci.hotspot.HotSpotInstalledCode;
import jdk.vm.ci.hotspot.HotSpotResolvedJavaMethod;
*** 54,69 ****
--- 55,69 ----
public final class CompilationStatistics {
public static class Options {
// @formatter:off
@Option(help = "Enables CompilationStatistics.")
! public static final OptionValue<Boolean> UseCompilationStatistics = new OptionValue<>(false);
! public static final OptionKey<Boolean> UseCompilationStatistics = new OptionKey<>(false);
// @formatter:on
}
private static final long RESOLUTION = 100000000;
private static final boolean ENABLED = Options.UseCompilationStatistics.getValue();
private static final CompilationStatistics DUMMY = new CompilationStatistics(null, false);
private static ConcurrentLinkedDeque<CompilationStatistics> list = new ConcurrentLinkedDeque<>();
*** 112,130 ****
--- 112,131 ----
signature = method.getSignature().toMethodDescriptor();
startTime = System.nanoTime();
bytecodeCount = method.getCodeSize();
threadAllocatedBytesStart = getThreadAllocatedBytes();
} else {
+ assert DUMMY == null : "only DUMMY has no method";
holder = "";
name = "";
signature = "";
startTime = 0;
}
}
public void finish(HotSpotResolvedJavaMethod method, HotSpotInstalledCode code) {
! if (ENABLED) {
! if (isEnabled()) {
duration = System.nanoTime() - startTime;
codeSize = (int) code.getCodeSize();
memoryUsed = getThreadAllocatedBytes() - threadAllocatedBytesStart;
if (current.get().getLast() != this) {
throw new RuntimeException("mismatch in finish()");
*** 135,160 ****
--- 136,162 ----
public static CompilationStatistics current() {
return current.get().isEmpty() ? null : current.get().getLast();
}
! public static CompilationStatistics create(OptionValues options, HotSpotResolvedJavaMethod method, boolean isOSR) {
! if (ENABLED) {
! if (Options.UseCompilationStatistics.getValue(options)) {
CompilationStatistics stats = new CompilationStatistics(method, isOSR);
list.add(stats);
current.get().addLast(stats);
return stats;
} else {
return DUMMY;
}
}
+ public boolean isEnabled() {
+ return this != DUMMY;
+ }
+
@SuppressWarnings("deprecation")
public static void clear(String dumpName) {
if (!ENABLED) {
return;
}
try {
ConcurrentLinkedDeque<CompilationStatistics> snapshot = list;
long snapshotZeroTime = zeroTime;
list = new ConcurrentLinkedDeque<>();
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot/src/org/graalvm/compiler/hotspot/CompilationStatistics.java
Index
Unified diffs
Context diffs
Sdiffs
Patch
New
Old
Previous File
Next File