1 /* 2 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package sun.management; 27 28 import java.util.List; 29 import sun.management.counter.Counter; 30 /** 31 * An interface for the monitoring and management of the 32 * Java virtual machine. 33 */ 34 public interface VMManagement { 35 36 // Optional supports 37 public boolean isCompilationTimeMonitoringSupported(); 38 public boolean isThreadContentionMonitoringSupported(); 39 public boolean isThreadContentionMonitoringEnabled(); 40 public boolean isCurrentThreadCpuTimeSupported(); 41 public boolean isOtherThreadCpuTimeSupported(); 42 public boolean isThreadCpuTimeEnabled(); 43 public boolean isBootClassPathSupported(); 44 public boolean isObjectMonitorUsageSupported(); 45 public boolean isSynchronizerUsageSupported(); 46 public boolean isThreadAllocatedMemorySupported(); 47 public boolean isThreadAllocatedMemoryEnabled(); 48 public boolean isGcNotificationSupported(); 49 public boolean isRemoteDiagnosticCommandsSupported(); 50 51 // Class Loading Subsystem 52 public long getTotalClassCount(); 53 public int getLoadedClassCount(); 54 public long getUnloadedClassCount(); 55 public boolean getVerboseClass(); 56 57 // Memory Subsystem 58 public boolean getVerboseGC(); 59 60 // Runtime Subsystem 61 public String getManagementVersion(); 62 public String getVmId(); 63 public String getVmName(); 64 public String getVmVendor(); 65 public String getVmVersion(); 66 public String getVmSpecName(); 67 public String getVmSpecVendor(); 68 public String getVmSpecVersion(); 69 public String getClassPath(); 70 public String getLibraryPath(); 71 public String getBootClassPath(); 72 public List<String> getVmArguments(); 73 public long getStartupTime(); 74 public long getUptime(); 75 public int getAvailableProcessors(); 76 77 // Compilation Subsystem 78 public String getCompilerName(); 79 public long getTotalCompileTime(); 80 81 // Thread Subsystem 82 public long getTotalThreadCount(); 83 public int getLiveThreadCount(); 84 public int getPeakThreadCount(); 85 public int getDaemonThreadCount(); 86 87 // Operating System 88 public String getOsName(); 89 public String getOsArch(); 90 public String getOsVersion(); 91 92 // Hotspot-specific Runtime support 93 public long getSafepointCount(); 94 public long getTotalSafepointTime(); 95 public long getSafepointSyncTime(); 96 public long getTotalApplicationNonStoppedTime(); 97 98 public long getLoadedClassSize(); 99 public long getUnloadedClassSize(); 100 public long getClassLoadingTime(); 101 public long getMethodDataSize(); 102 public long getInitializedClassCount(); 103 public long getClassInitializationTime(); 104 public long getClassVerificationTime(); 105 106 // Performance counter support 107 public List<Counter> getInternalCounters(String pattern); 108 }