(转)用Java获得当前性能信息

http://www.blogjava.net/amigoxie/archive/2008/04/30/197564.html
在Java中,可以获得总的物理内存、剩余的物理内存、已使用的物理内存等信息,本例讲解如何取得这些信息,并且获得在Windows下的内存使用率。
     首先编写一个MonitorInfoBean类,用来装载监控的一些信息,包括物理内存、剩余的物理内存、已使用的物理内存、内存使用率等字段,该类的代码如下:
package  com.amigo.performance;

/** */ /**
 * 监视信息的JavaBean类.
 * 
@author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
 * 
@version 1.0 
 * Creation date: 2008-4-25 - 上午10:37:00
 
*/

public   class  MonitorInfoBean  {
    
/** *//** 可使用内存. */
    
private long totalMemory;
    
    
/** *//** 剩余内存. */
    
private long freeMemory;
    
    
/** *//** 最大可使用内存. */
    
private long maxMemory;
    
    
/** *//** 操作系统. */
    
private String osName;
    
    
/** *//** 总的物理内存. */
    
private long totalMemorySize;
    
    
/** *//** 剩余的物理内存. */
    
private long freePhysicalMemorySize;
    
    
/** *//** 已使用的物理内存. */
    
private long usedMemory;
    
    
/** *//** 线程总数. */
    
private int totalThread;
    
    
/** *//** cpu使用率. */
    
private double cpuRatio;

    
public long getFreeMemory() {
        
return freeMemory;
    }


    
public void setFreeMemory(long freeMemory) {
        
this.freeMemory = freeMemory;
    }


    
public long getFreePhysicalMemorySize() {
        
return freePhysicalMemorySize;
    }


    
public void setFreePhysicalMemorySize(long freePhysicalMemorySize) {
        
this.freePhysicalMemorySize = freePhysicalMemorySize;
    }


    
public long getMaxMemory() {
        
return maxMemory;
    }


    
public void setMaxMemory(long maxMemory) {
        
this.maxMemory = maxMemory;
    }


    
public String getOsName() {
        
return osName;
    }


    
public void setOsName(String osName) {
        
this.osName = osName;
    }


    
public long getTotalMemory() {
        
return totalMemory;
    }


    
public void setTotalMemory(long totalMemory) {
        
this.totalMemory = totalMemory;
    }


    
public long getTotalMemorySize() {
        
return totalMemorySize;
    }


    
public void setTotalMemorySize(long totalMemorySize) {
        
this.totalMemorySize = totalMemorySize;
    }


    
public int getTotalThread() {
        
return totalThread;
    }


    
public void setTotalThread(int totalThread) {
        
this.totalThread = totalThread;
    }


    
public long getUsedMemory() {
        
return usedMemory;
    }


    
public void setUsedMemory(long usedMemory) {
        
this.usedMemory = usedMemory;
    }


    
public double getCpuRatio() {
        
return cpuRatio;
    }


    
public void setCpuRatio(double cpuRatio) {
        
this.cpuRatio = cpuRatio;
    }

}

     接着编写一个获得当前的监控信息的接口,该类的代码如下所示:
package  com.amigo.performance;

/** */ /**
 * 获取系统信息的业务逻辑类接口.
 * 
@author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
 * 
@version 1.0 
 * Creation date: 2008-3-11 - 上午10:06:06
 
*/
public   interface  IMonitorService  {
    
/** *//**
     * 获得当前的监控对象.
     * 
@return 返回构造好的监控对象
     * 
@throws Exception
     * 
@author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a>
     * Creation date: 2008-4-25 - 上午10:45:08
     
*/

    
public MonitorInfoBean getMonitorInfoBean() throws Exception;

}
     该类的实现类MonitorServiceImpl如下所示:
package  com.amigo.performance;

import  java.io.InputStreamReader;
import  java.io.LineNumberReader;

import  sun.management.ManagementFactory;

import  com.sun.management.OperatingSystemMXBean;

/** */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值