(转)用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;
/** */
在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;
/** */
相关文章推荐
- (转)用Java获得当前性能信息
- 用Java获得当前性能信息
- (转)用Java获得当前性能信息
- 用Java获得当前性能信息
- 用Java获得当前性能信息
- 用Java获得当前性能信息
- java不用jni,也可以获得当前系统性能信息
- java获得当前系统信息和服务器信息
- java不用jni,也可以获得当前系统性能信息
- java获得当前屏幕像素
- java获得当前文件路径
- java获得数据库信息常用API(DatabaseMetaData)示例
- Java获得jvm占用的内存和系统的可用内存信息(未测试)
- java通过反射+javassist获得方法所有信息(返回值、方法名、参数类型列表、参数列表)
- 如何获得JDK1.6上的jconsole启动时的正在运行的JAVA进程的一些信息
- 【MySQL】Java对SQL时间类型的操作(获得当前、昨天、前年。。时间)
- Java获取当前系统详细信息
- JAVA获得设备信息
- 通过CreateToolhelp32Snapshot函数获得系统中当前运行的进程信息2
- 使用java的Calendar对象获得当前日期的上几个度开始、结束时间