当前位置:编程学习 > JAVA >>

用Java获得当前性能信息

在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 inte易做图ce 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; 
 
/** 
 * 获取系统信息的业务逻辑实现类. 
 * @author <a href="mailto:xiexingxing1121@126.com">AmigoXie</a> 
 * @version 1.0 Creation date: 2008-3-11 - 上午10:06:06 
 */
public class MonitorServiceImpl implements IMonitorService { 
     
    private static final int CPUTIME = 30; 
 
    private static final int PERCENT = 100; 
 
    private static final int FAULTLENGTH = 10; 
 
    /** 
     * 获得当前的监控对象. 
     * @return 返回构造好的监控对象 
     * @throws Exception 
     * @author <a href="mailto:x

补充:软件开发 , Java ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,