Path: blob/master/runtime/jcl/common/mgmtcompilation.c
6000 views
/*******************************************************************************1* Copyright (c) 1998, 2016 IBM Corp. and others2*3* This program and the accompanying materials are made available under4* the terms of the Eclipse Public License 2.0 which accompanies this5* distribution and is available at https://www.eclipse.org/legal/epl-2.0/6* or the Apache License, Version 2.0 which accompanies this distribution and7* is available at https://www.apache.org/licenses/LICENSE-2.0.8*9* This Source Code may also be made available under the following10* Secondary Licenses when the conditions for such availability set11* forth in the Eclipse Public License, v. 2.0 are satisfied: GNU12* General Public License, version 2 with the GNU Classpath13* Exception [1] and GNU General Public License, version 2 with the14* OpenJDK Assembly Exception [2].15*16* [1] https://www.gnu.org/software/classpath/license.html17* [2] http://openjdk.java.net/legal/assembly-exception.html18*19* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 OR LicenseRef-GPL-2.0 WITH Assembly-exception20*******************************************************************************/2122#include "jni.h"23#include "j9.h"24#include "jcl_internal.h"2526jlong JNICALL27Java_com_ibm_java_lang_management_internal_CompilationMXBeanImpl_getTotalCompilationTimeImpl(JNIEnv *env, jobject beanInstance)28{29J9JavaVM *javaVM = ((J9VMThread *) env)->javaVM;30jlong result;31J9JavaLangManagementData *mgmt = javaVM->managementData;32PORT_ACCESS_FROM_JAVAVM( javaVM );3334omrthread_rwmutex_enter_read( mgmt->managementDataLock );3536result = (jlong)mgmt->totalCompilationTime;37if( mgmt->threadsCompiling > 0 ) {38result += checkedTimeInterval((U_64)j9time_nano_time(), (U_64)mgmt->lastCompilationStart) * mgmt->threadsCompiling;39}4041omrthread_rwmutex_exit_read( mgmt->managementDataLock );4243return result / J9PORT_TIME_NS_PER_MS;44}4546jboolean JNICALL47Java_com_ibm_java_lang_management_internal_CompilationMXBeanImpl_isCompilationTimeMonitoringSupportedImpl(JNIEnv *env, jobject beanInstance)48{49return JNI_TRUE;50}5152jboolean JNICALL53Java_com_ibm_java_lang_management_internal_CompilationMXBeanImpl_isJITEnabled(JNIEnv *env, jobject beanInstance)54{55J9JavaVM *javaVM = ((J9VMThread *) env)->javaVM;5657#if defined (J9VM_INTERP_NATIVE_SUPPORT)58if( javaVM->jitConfig != NULL ) {59return JNI_TRUE;60}61#endif6263return JNI_FALSE;64}656667