public static ThreadInfo[] getThreadInfos() { ThreadMXBean mbean = ManagementFactory.getThreadMXBean(); return mbean.dumpAllThreads(mbean.isObjectMonitorUsageSupported(),mbean.isSynchronizerUsageSupported()); }
@Override public long estimatedSize( DiagnosticsReporterProgress progress ) throws IOException { MemoryMXBean bean = ManagementFactory.getPlatformMXBean( mBeanServer, MemoryMXBean.class ); long totalMemory = bean.getHeapMemoryUsage().getCommitted() + bean.getNonHeapMemoryUsage().getCommitted(); // We first write raw to disk then write to archive, 5x compression is a reasonable worst case estimation return (long) (totalMemory * 1.2); } };
public MBeanServer getObject() throws Exception { return ManagementFactory.getPlatformMBeanServer(); }
public static int getPid() { if (PID < 0) { try { RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); String name = runtime.getName(); // format: "pid@hostname" PID = Integer.parseInt(name.substring(0, name.indexOf('@'))); } catch (Throwable e) { PID = 0; } } return PID; } }
@Override void dump( Logger logger ) { RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); logger.log( "VM Name: " + runtime.getVmName() ); logger.log( "VM Vendor: " + runtime.getVmVendor() ); logger.log( "VM Version: " + runtime.getVmVersion() ); CompilationMXBean compiler = ManagementFactory.getCompilationMXBean(); logger.log( "JIT compiler: " + ( ( compiler == null ) ? "unknown" : compiler.getName() ) ); logger.log( "VM Arguments: " + runtime.getInputArguments() ); } },
import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; ... RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); List<String> arguments = runtimeMxBean.getInputArguments();
/** * 返回应用启动到现在的毫秒数 */ public static long getUpTime() { return ManagementFactory.getRuntimeMXBean().getUptime(); }
private static long determineHeapSize() { return ManagementFactory.getMemoryMXBean().getHeapMemoryUsage().getUsed(); }
@Override public void accept(byte[] v) throws Exception { System.out.println("Bounded Replay Leak check: Wait before GC 2"); Thread.sleep(1000); System.out.println("Bounded Replay Leak check: GC 2"); System.gc(); Thread.sleep(500); after.set(memoryMXBean.getHeapMemoryUsage().getUsed()); } });
public final static Date getStartTime() { if (startTime == null) { startTime = new Date(ManagementFactory.getRuntimeMXBean().getStartTime()); } return startTime; }
private static String getClassPath() { RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); return runtime.getClassPath(); }
public static void jstack(OutputStream stream) throws Exception { ThreadMXBean threadMxBean = ManagementFactory.getThreadMXBean(); for (ThreadInfo threadInfo : threadMxBean.dumpAllThreads(true, true)) { stream.write(getThreadDumpString(threadInfo).getBytes()); } }
public static long totalMemoryUsedByDirectAndMappedBuffers() { long totalMemoryUsed = 0L; List<BufferPoolMXBean> pools = ManagementFactory.getPlatformMXBeans(BufferPoolMXBean.class); for (BufferPoolMXBean pool : pools) { totalMemoryUsed += pool.getMemoryUsed(); } return totalMemoryUsed; }
public static int getPid() { if (PID < 0) { try { RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean(); String name = runtime.getName(); // format: "pid@hostname" PID = Integer.parseInt(name.substring(0, name.indexOf('@'))); } catch (Throwable e) { PID = 0; } } return PID; } }
/** * Get the list of command line arguments that were passed to the Java runtime, as opposed to the Java program. * * @see RuntimeMXBean#getInputArguments() * @return The list of arguments, as Strings, that were given to the Java runtime. */ public static List<String> getJavaExecutableArguments() { RuntimeMXBean runtimeMxBean = ManagementFactory.getRuntimeMXBean(); return runtimeMxBean.getInputArguments(); }
static long usedMemoryNow() { MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean(); MemoryUsage heapMemoryUsage = memoryMXBean.getHeapMemoryUsage(); return heapMemoryUsage.getUsed(); }
@Override public void accept(byte[] v) throws Exception { System.out.println("Bounded Replay Leak check: Wait before GC 2"); Thread.sleep(1000); System.out.println("Bounded Replay Leak check: GC 2"); System.gc(); Thread.sleep(500); after.set(memoryMXBean.getHeapMemoryUsage().getUsed()); } });
public static void jstack(OutputStream stream) throws Exception { ThreadMXBean threadMxBean = ManagementFactory.getThreadMXBean(); for (ThreadInfo threadInfo : threadMxBean.dumpAllThreads(true, true)) { stream.write(getThreadDumpString(threadInfo).getBytes()); } }
@Override public void accept(byte[] v) throws Exception { System.out.println("Bounded Replay Leak check: Wait before GC 2"); Thread.sleep(1000); System.out.println("Bounded Replay Leak check: GC 2"); System.gc(); Thread.sleep(500); after.set(memoryMXBean.getHeapMemoryUsage().getUsed()); } });
@Override public void accept(byte[] v) throws Exception { System.out.println("Bounded Replay Leak check: Wait before GC 2"); Thread.sleep(1000); System.out.println("Bounded Replay Leak check: GC 2"); System.gc(); Thread.sleep(500); after.set(memoryMXBean.getHeapMemoryUsage().getUsed()); } });