336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

자바에서 시스템 정보를 가져오는 방법
jconsole을 실행하면 나오는 각종 시스템 및 VM 정보를 가져오는 함수에 대한 간략한 예제

실행 결과..

Available Processors: 2
TotalPhysicalMemorySize: 2146807808
FreePhysicalMemorySize: 1129312256
TotalSwapSpaceSize: 4135288832
FreeSwapSpaceSize: 1529995264
CommittedVirtualMemorySize: 28065792
SystemLoadAverage: -1.0
Thread Count: 5
Thread CPU Time(5)0
Thread User Time(5)0
Thread CPU Time(4)0
Thread User Time(4)0
Thread CPU Time(3)0
Thread User Time(3)0
Thread CPU Time(2)0
Thread User Time(2)0
Thread CPU Time(1)78125000
Thread User Time(1)78125000
TotalLoadedClassCount: 376
LoadedClassCount: 376
UnloadedClassCount: 0
Heap Memory: init = 0(0K) used = 248056(242K) committed = 5177344(5056K) max = 66650112(65088K)
NonHeap Memory: init = 33751040(32960K) used = 12807192(12507K) committed = 34045952(33248K) max = 121634816(118784K)
Total  Space: 42957217792
Usable Space: 5111283712
Calculation: 99.97038
CPU Usage: 99.0

--------------------------------------------

import java.io.File;
import java.lang.management.ClassLoadingMXBean;
import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryUsage;
import java.lang.management.RuntimeMXBean;
import java.lang.management.ThreadMXBean;

import com.sun.management.OperatingSystemMXBean;

public class MXBeanTest {


 public static void showCPU()
 {
  OperatingSystemMXBean osbean = (OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();
  RuntimeMXBean runbean = (RuntimeMXBean) ManagementFactory.getRuntimeMXBean();
  
  long bfprocesstime =osbean.getProcessCpuTime();
  long bfuptime = runbean.getUptime();
  long ncpus = osbean.getAvailableProcessors();
  
  for (int i =0;  i<1000000; ++i)
  {
   ncpus = osbean.getAvailableProcessors();
  }
  
  long afprocesstime =osbean.getProcessCpuTime();
  long afuptime = runbean.getUptime();
 
  float cal = (afprocesstime-bfprocesstime)/((afuptime-bfuptime)*10000f);
  
  float usage = Math.min(99f, cal);
  
  System.out.println("Calculation: " + cal);
  System.out.println("CPU Usage: " + usage);
 
 }
 
 public static void showDisk()
 {
  File root = null;
  
  try{
   root = new File("D:/");
   
   System.out.println("Total  Space: " + root.getTotalSpace());
   System.out.println("Usable Space: " + root.getUsableSpace());
   
  }catch(Exception e){e.printStackTrace();}
  
 }
 
 public static void showRuntime()
 {
  RuntimeMXBean runbean = (RuntimeMXBean) ManagementFactory.getRuntimeMXBean();
  
 }
 
 public static void showMemory()
 {
  MemoryMXBean membean = (MemoryMXBean)ManagementFactory.getMemoryMXBean();
  
  MemoryUsage heap = membean.getHeapMemoryUsage();
  System.out.println("Heap Memory: " + heap.toString());
  
  MemoryUsage nonheap = membean.getNonHeapMemoryUsage();
  System.out.println("NonHeap Memory: " + nonheap.toString());
  
 }
 
 public static void showClassLoading()
 {
  ClassLoadingMXBean classbean = (ClassLoadingMXBean) ManagementFactory.getClassLoadingMXBean();
  
  System.out.println("TotalLoadedClassCount: " + classbean.getTotalLoadedClassCount());
  System.out.println("LoadedClassCount: " + classbean.getLoadedClassCount());
  System.out.println("UnloadedClassCount: " + classbean.getUnloadedClassCount());
  
 }
 
 public static void showThreadBean()
 {
  ThreadMXBean tbean = (ThreadMXBean) ManagementFactory.getThreadMXBean();
  
  long[] ids = tbean.getAllThreadIds();
  
  System.out.println("Thread Count: " + tbean.getThreadCount());
  
  for (long id: ids)
  {
   System.out.println("Thread CPU Time(" + id+ ")" + tbean.getThreadCpuTime(id));
   System.out.println("Thread User Time(" + id+ ")" + tbean.getThreadCpuTime(id));
  }
  
 }
 
 public static void showOSBean()
 {

  OperatingSystemMXBean osbean = (OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();
  
  System.out.println("Available Processors: " + osbean.getAvailableProcessors());
  System.out.println("TotalPhysicalMemorySize: "+osbean.getTotalPhysicalMemorySize());
  System.out.println("FreePhysicalMemorySize: "+osbean.getFreePhysicalMemorySize());
  System.out.println("TotalSwapSpaceSize: "+osbean.getTotalSwapSpaceSize());
  System.out.println("FreeSwapSpaceSize: "+osbean.getFreeSwapSpaceSize());
  System.out.println("CommittedVirtualMemorySize: "+osbean.getCommittedVirtualMemorySize());
  System.out.println("SystemLoadAverage: "+osbean.getSystemLoadAverage());

 }
 
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  MXBeanTest.showOSBean();
  MXBeanTest.showThreadBean();
  MXBeanTest.showClassLoading();
  MXBeanTest.showMemory();
  MXBeanTest.showDisk();
  MXBeanTest.showCPU();
 }

}

+ Recent posts