import java.net.UnknownHostException;
import java.util.Map;
import java.util.Properties;
import java.util.Timer;
import java.util.TimerTask;
import java.io.PrintWriter;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Mem;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
public class RuntimeTest {
public static void main(String[] args) throws IOException {
try {
Timer timer = new Timer();//定时器
TimerTask task = new TimerTask(){
public void run() {
try {
memory();
} catch (SigarException e) {
e.printStackTrace();
}
}
};
try{
timer.schedule(task, 0, 1800000);//每半小时取一次
}catch(Exception ex){
ex.printStackTrace();
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
private static void memory() throws SigarException {
Sigar sigar = new Sigar();
Mem mem = sigar.getMem();
float total = mem.getTotal();
float used = mem.getUsed();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
OutputStream file = new FileOutputStream ("testlog.txt",true);
PrintWriter pw = new PrintWriter (file);
System.out.println(df.format(new Date()));
pw.println(df.format(new Date()));
pw.flush();
// 内存总量
System.out.println("内存总量: " + mem.getTotal() / 1024L/1024L + "M");
pw.println("内存总量: " + mem.getTotal() / 1024L/1024L + "M");
pw.flush();
// 当前内存使用量
System.out.println("当前内存使用量: " + mem.getUsed() / 1024L/1024L + "M ");
pw.println("当前内存使用量: " + mem.getUsed() / 1024L/1024L + "M ");
pw.flush();
// 当前内存剩余量
System.out.println("当前内存剩余量: " + mem.getFree() / 1024L/1024L + "M ");
pw.println("当前内存剩余量: " + mem.getFree() / 1024L/1024L + "M ");
pw.flush();
// 当前内存使用率
System.out.println("内存使用率: " +used/total*100+"%");
pw.println("内存使用率: " +used/total*100+"%\n");
pw.flush();
pw.close();
file.close();
} catch (Exception x1)
{
x1.printStackTrace();
}
}
}
06-23
1667