作者comaniac (coding cody)
看板java
标题[问题] GC回收的内容
时间Wed Mar 3 03:04:21 2010
小弟最近工作其中一项内容和Garbage Collector有关
目前我手边的东西是一个gctest.dll(在unix下也可以compile成.so)
这颗library主要是取得GC event的callback
例如在GC开始执行时於画面上print一行"GC start"之类的功能
现在小弟遭遇的困难是
有一个工作是除了要知道GC何时开始和结束之外
还要能知道GC执行後回收的object内容
(不管什麽资讯都可以,只要能知道有哪些东西没了就可以)
我有找到Objectfree这个JVM environment的event
但我用来测试的java程式似乎完全不为GC所动...
以下为测试用java程式大概的内容:
for (int i = 1; i < 5000; ++i) {
try {
GreeterClassLoader gcl = new GreeterClassLoader("greeters");
Class c = gcl.loadClass("Surprise", true);
Object o = c.newInstance();
Greeter greeter = (Greeter) o;
greeter.greet();
gcl = null;
c = null;
o = null;
greeter = null;
//System.gc();
}catch (Exception e) {
e.printStackTrace();
}
}
理论上我已经把new出来的object指向null
所以GC启动时应该会把object回收
但好像没有
推测原因是该object所占空间对GC来说构不成威胁,所以GC无视他@@
就算强迫GC执行也是一样
所以想请问版上的高手
有没有确实能够让GC回收object的写法呢?
(至於GC回收的object我可以自己研究,但目前碍於根本无法让GC回收物件
导致没办法测试Objectfree的效果> <)
在此先谢谢版上大大拨冗看完此篇落落长的问题m(_ _)m
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.37.131.207
※ 编辑: comaniac 来自: 114.37.131.207 (03/03 03:05)
1F:推 LPH66:用 -Xmx 限制记忆体大小? 03/03 03:10
2F:推 willieliao:把CLASS搞大...load个1920*1080的ICON或来个超长字串 03/03 14:04
3F:→ tkcn:这 id... 好眼熟 XD 03/03 14:32