java代码监控内存 java监控gc( 三 )


import java.util.Timer;
import java.util.TimerTask;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.FileSystem;
import org.hyperic.sigar.FileSystemUsage;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.NetFlags;
import org.hyperic.sigar.NetInterfaceConfig;
import org.hyperic.sigar.NetInterfaceStat;
import org.hyperic.sigar.OperatingSystem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.Swap;
import org.hyperic.sigar.Who;
public class RuntimeTest {
public static void main(String[] args) {
try {
Timer timer = new Timer();//定时器
TimerTask task = new TimerTask(){
public void run() {
try {
memory();
} catch (SigarException e) {
e.printStackTrace();
}
}
};
try{
timer.schedule(task, 0, 3000);//每3秒取一次
}catch(Exception ex){
ex.printStackTrace();
}
// System信息,从jvm获取
// property();//根据自己的需求,都可以放到定时器中定时获取
// cpu信息
//cpu();
// 内存信息
// memory();
// 操作系统信息
//os();
// 用户信息
//who();

} catch (Exception e1) {
e1.printStackTrace();
}
}
private static void property() throws UnknownHostException {
Runtime r = Runtime.getRuntime();
Properties props = System.getProperties();
InetAddress addr;
addr = InetAddress.getLocalHost();
String ip = addr.getHostAddress();
MapString, String map = System.getenv();
String userName = map.get("USERNAME");// 获取用户名
String computerName = map.get("COMPUTERNAME");// 获取计算机名
String userDomain = map.get("USERDOMAIN");// 获取计算机域名
System.out.println("用户名:" + userName);
System.out.println("计算机名:" + computerName);
System.out.println("计算机域名:" + userDomain);
System.out.println("本地ip地址: " + ip);
System.out.println("本地主机名:" + addr.getHostName());
System.out.println("JVM可以使用的总内存:" + r.totalMemory());
System.out.println("JVM可以使用的剩余内存:" + r.freeMemory());
System.out.println("JVM可以使用的处理器个数:" + r.availableProcessors());
System.out.println("Java的运行环境版本:" + props.getProperty("java.version"));
System.out.println("Java的运行环境供应商:" + props.getProperty("java.vendor"));
System.out.println("Java供应商的URL:" + props.getProperty("java.vendor.url"));
System.out.println("Java的安装路径:" + props.getProperty("java.home"));
System.out.println("Java的虚拟机规范版本:" + props.getProperty("java.vm.specification.version"));
System.out.println("Java的虚拟机规范供应商:" + props.getProperty("java.vm.specification.vendor"));
System.out.println("Java的虚拟机规范名称:" + props.getProperty("java.vm.specification.name"));
System.out.println("Java的虚拟机实现版本:" + props.getProperty("java.vm.version"));
System.out.println("Java的虚拟机实现供应商:" + props.getProperty("java.vm.vendor"));
System.out.println("Java的虚拟机实现名称:" + props.getProperty("java.vm.name"));
System.out.println("Java运行时环境规范版本:" + props.getProperty("java.specification.version"));
System.out.println("Java运行时环境规范供应商: " + props.getProperty("java.specification.vender"));
System.out.println("Java运行时环境规范名称:" + props.getProperty("java.specification.name"));
System.out.println("Java的类格式版本号:" + props.getProperty("java.class.version"));
System.out.println("Java的类路径:" + props.getProperty("java.class.path"));
System.out.println("加载库时搜索的路径列表:" + props.getProperty("java.library.path"));

推荐阅读