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