相信大家都用过Applet程序吧。
在网页中打开Applet程序时,打开java的控制台,
在控制台上按下g,控制台则会输出以下:
1.垃圾回收...完了
2.显示内存量23,360K(例子) 剩余容量:10,381K(例子) (44%) ... 完了以上是我们手动可以控制,并记录下来内存的信息。现在我想要在程序中自己添加一个线程,
模拟以上操作,来定时的收集这些内存信息。首先要执行一段代码,达到的效果要类似于在 java控制台 按下 g 的操作。然后再取得内存的信息。
谢谢各位了。另外,实现环境是jdk1.4。
在网页中打开Applet程序时,打开java的控制台,
在控制台上按下g,控制台则会输出以下:
1.垃圾回收...完了
2.显示内存量23,360K(例子) 剩余容量:10,381K(例子) (44%) ... 完了以上是我们手动可以控制,并记录下来内存的信息。现在我想要在程序中自己添加一个线程,
模拟以上操作,来定时的收集这些内存信息。首先要执行一段代码,达到的效果要类似于在 java控制台 按下 g 的操作。然后再取得内存的信息。
谢谢各位了。另外,实现环境是jdk1.4。
可以获jvm内存信息,还能 gc ,其他我就不知道了。
System.gc();
Runtime imp = Runtime.getRuntime();
System.out.println(imp.maxMemory());
System.out.println(imp.freeMemory());这种方法我实验了一下,
与在控制台输入g相比,还是不准确的。
但依然谢谢。人好少啊。汗~
这个方法很不可控 你现在进行的回收动作 说不定要等半个小时后才执行
怎么会不准确呢,只是它打印出来的是字节数,你除以1024后勤部转换成K显示不就可以了吗? 除非你觉得maxMemory及freeMemory函数本身有问题啦.
1.5之后的jdk使用到的统计信息基本都是通过jvmti来实现的,比较方便
怎么得到使用内存量和剩余内存量?
还有那个 44% 的数?用哪个方法 ?
我除以的是1000。我承认很丢脸啦!