OS CPU MEMORY 값 보여주기

 | JAVA
2012. 5. 15. 18:33

 

[소스]

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;

/**
 * @co.kr.codein
 * @author yonghoon
 * 
 */

public class UseMxBean
{

  
/**
 * @param args
 */

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    new UseMxBean();
  }

  
/*
 * 디스크용량
 */

  private void showDisk() {
    File root = null;

    try {
      root = new File("/");

      System.out.println("Total Space: " + toMB(root.getTotalSpace()));
      System.out.println("Usable Space: " + toMB(root.getUsableSpace()));
      
      /* added by cafe mocha */
      System.exit(0);

    } catch (Exception e) {
      e.printStackTrace();
    }

  }

  
/*
 * cpu 사용량
 */

  private 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);

  }

  private void showRuntime() {
    RuntimeMXBean runbean = (RuntimeMXBean) ManagementFactory
      .getRuntimeMXBean();

  }

  
/*
 * 메모리 사용량
 */

  private 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());

  }

  private 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());

  }

  private 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));
    }

  }

  
/**
 * OS 정보
 */

  private void showOSBean() {

    OperatingSystemMXBean osbean = (OperatingSystemMXBean) ManagementFactory
      .getOperatingSystemMXBean();

    System.out.println("OS Name: " + osbean.getName());
    System.out.println("OS Arch: " + osbean.getArch());
    System.out.println("Available Processors: "
        + osbean.getAvailableProcessors());
    System.out.println("TotalPhysicalMemorySize: "
        + toMB(osbean.getTotalPhysicalMemorySize()));
    System.out.println("FreePhysicalMemorySize: "
        + toMB(osbean.getFreePhysicalMemorySize()));
    System.out.println("TotalSwapSpaceSize: "
        + toMB(osbean.getTotalSwapSpaceSize()));
    System.out.println("FreeSwapSpaceSize: "
        + toMB(osbean.getFreeSwapSpaceSize()));
    System.out.println("CommittedVirtualMemorySize: "
        + toMB(osbean.getCommittedVirtualMemorySize()));
    System.out.println("SystemLoadAverage: "
        + osbean.getSystemLoadAverage());

  }

  public UseMxBean() {
    seperator(); showOSBean();
    seperator(); showThreadBean();
    seperator(); showClassLoading();
    seperator(); showMemory();
    seperator(); showDisk();
    seperator(); showCPU();
    seperator();
  }
  
  /* added cafe mocha 2009-06 */
  private void seperator() {
    System.out.println("-----------------------------------------------");
  }
  /* added cafe mocha 2009-06 */
  private String toMB(long size)
  {
    return (int)(size/(1024*1024))+"(MB)";
  }


 

이 글은 스프링노트에서 작성되었습니다.

'JAVA' 카테고리의 다른 글

Printf 수식 모음  (0) 2012.05.15
passwd 암호화  (0) 2012.05.15
유니코드 표  (0) 2012.05.08
SqlExploler(eclipse)  (0) 2012.05.08
자바 EXE 만들기.  (0) 2012.05.08
Posted by 사라링
BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
VM-WARE (0)
디자인패턴 (1)
스크랩 (0)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
Total :
Today : Yesterday :