您的位置:首页 > 编程语言 > Java开发

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

2013-07-01 16:14 337 查看
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;






/** */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: