import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* @author 作者:LzwGLory E-mail: 137268431@qq.com
* @version 创建时间:2014年8月19日 上午11:46:30 类说明
* 检测JVM工具类
*/
public class GCTimerTask extends TimerTask implements ServletContextListener{
private static GCTimerTask instance = null;
// public GCTimerTask(){//項目啟動時執行
// instance=new GCTimerTask();
// instance.startWork();
// instance.run();
// }
public void run() {
Calendar cal = new GregorianCalendar();
int hour24 = cal.get(Calendar.HOUR_OF_DAY); // 0..23
int min = cal.get(Calendar.MINUTE); // 0..59
System.out.print("[" + String.valueOf(hour24) + ":"
+ String.valueOf(min) + "]");
System.out.println("JVM可用内存:" + java.lang.Runtime.getRuntime().
freeMemory() / (1024 * 1024) + "M/"
+ java.lang.Runtime.getRuntime().totalMemory() /
(1024 * 1024) + "M");
System.gc();
}
private void startWork() {
Timer t = new Timer();
t.schedule(instance, 0, 1000 * 60);
}
public static GCTimerTask getInstance() {
if (instance == null) {
instance = new GCTimerTask();
instance.startWork();
}
return instance;
}
@Override
public void contextInitialized(ServletContextEvent arg0) {
// TODO Auto-generated method stub
getInstance().run();
}
@Override
public void contextDestroyed(ServletContextEvent arg0) {
// TODO Auto-generated method stub
}
<!-- 监听内存使用量 -->
<listener>
<listener-class>cn.itcast.oa.tools.GCTimerTask</listener-class>
</listener>