[問題] GC回收的內容
小弟最近工作其中一項內容和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)
推
03/03 03:10, , 1F
03/03 03:10, 1F
推
03/03 14:04, , 2F
03/03 14:04, 2F
→
03/03 14:32, , 3F
03/03 14:32, 3F
討論串 (同標題文章)