src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/InitTimer.java
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File open Cdiff src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/InitTimer.java

src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/InitTimer.java

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 22,31 **** --- 22,33 ---- */ package jdk.vm.ci.common; import java.util.concurrent.atomic.AtomicInteger; + import jdk.vm.ci.services.Services; + /** * A facility for timing a step in the runtime initialization sequence. This is independent from all * other JVMCI code so as to not perturb the initialization sequence. It is enabled by setting the * {@code "jvmci.inittimer"} system property to {@code "true"}. */
*** 56,80 **** initializingThread = null; } } public static InitTimer timer(String name) { ! return ENABLED ? new InitTimer(name) : null; } public static InitTimer timer(String name, Object suffix) { ! return ENABLED ? new InitTimer(name + suffix) : null; } /** ! * Specifies if initialization timing is enabled. Note: This property cannot use * {@code HotSpotJVMCIRuntime.Option} since that class is not visible from this package. */ ! private static final boolean ENABLED = Boolean.getBoolean("jvmci.InitTimer"); ! public static final AtomicInteger nesting = ENABLED ? new AtomicInteger() : null; ! public static final String SPACES = " "; /** * Used to assert the invariant that all related initialization happens on the same thread. */ static Thread initializingThread; --- 58,93 ---- initializingThread = null; } } public static InitTimer timer(String name) { ! return isEnabled() ? new InitTimer(name) : null; } public static InitTimer timer(String name, Object suffix) { ! return isEnabled() ? new InitTimer(name + suffix) : null; } /** ! * Determines if initialization timing is enabled. Note: This property cannot use * {@code HotSpotJVMCIRuntime.Option} since that class is not visible from this package. */ ! private static boolean isEnabled() { ! if (enabledPropertyValue == null) { ! enabledPropertyValue = Boolean.parseBoolean(Services.getSavedProperty("jvmci.InitTimer")); ! nesting = new AtomicInteger(); ! } ! return enabledPropertyValue; ! } ! ! /** ! * Cache for value of {@code jvmci.InitTimer} system property. ! */ ! @NativeImageReinitialize private static Boolean enabledPropertyValue; ! private static AtomicInteger nesting; ! private static final String SPACES = " "; /** * Used to assert the invariant that all related initialization happens on the same thread. */ static Thread initializingThread;
src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.common/src/jdk/vm/ci/common/InitTimer.java
Index Unified diffs Context diffs Sdiffs Frames Patch New Old Previous File Next File