1 /* 2 * Copyright (c) 2003, 2011, 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 50 // Class Loading Subsystem 51 public long getTotalClassCount(); 52 public int getLoadedClassCount(); 53 public long getUnloadedClassCount(); 54 public boolean getVerboseClass(); 55 56 // Memory Subsystem 57 public boolean getVerboseGC(); 58 59 // Runtime Subsystem 60 public String getManagementVersion(); 61 public String getVmId(); 62 public String getVmName(); 63 public String getVmVendor(); 64 public String getVmVersion(); 65 public String getVmSpecName(); 66 public String getVmSpecVendor(); 67 public String getVmSpecVersion(); 68 public String getClassPath(); 69 public String getLibraryPath(); 70 public String getBootClassPath(); 71 public List<String> getVmArguments(); 72 public long getStartupTime(); 73 public int getAvailableProcessors(); 74 75 // Compilation Subsystem 76 public String getCompilerName(); 77 public long getTotalCompileTime(); 78 79 // Thread Subsystem 80 public long getTotalThreadCount(); 81 public int getLiveThreadCount(); 82 public int getPeakThreadCount(); 83 public int getDaemonThreadCount(); 84 85 // Operating System 86 public String getOsName(); 87 public String getOsArch(); 88 public String getOsVersion(); 89 90 // Hotspot-specific Runtime support 91 public long getSafepointCount(); 92 public long getTotalSafepointTime(); 93 public long getSafepointSyncTime(); 94 public long getTotalApplicationNonStoppedTime(); 95 96 public long getLoadedClassSize(); 97 public long getUnloadedClassSize(); 98 public long getClassLoadingTime(); 99 public long getMethodDataSize(); 100 public long getInitializedClassCount(); 101 public long getClassInitializationTime(); 102 public long getClassVerificationTime(); 103 104 // Performance counter support 105 public List<Counter> getInternalCounters(String pattern); 106 }