此問題僅限於HotSpot generations。有沒有什麼方法可以通過編程找出某個特定實例在哪一代存在。數據如:我可以編程的方式找出實例在哪個GC代中生存?
任何技術的工作原理,只要我可以做這樣的事情:
Object x = new Object();
HotSpotGenerationInfo info = HotSpotGenerationUtil.getInfo(x);
乞丐不能挑肥揀瘦,但理想的我也可以學習時的實例興趣是從一個代移動到另一個此刻正好(即事件回調基礎 - 在延遲&開銷輪詢隱含不感興趣)
不要在答案有興趣這只是說「不」沒有理由:)
我很好奇你爲什麼會對此感興趣。除了純粹的好奇心:) :) – drekka 2010-12-16 02:42:18
它可能無法完成,因爲a)它會使移動資源變得更加昂貴,並且b)沒有人發現這樣做的好用處。也許你有一個很好的使用,並可以揭示它? – 2010-12-16 08:11:24
如果執行gen0集合意味着所有存活對象都是gen1或更高,並且gen1或gen2集合意味着所有存活對象都是gen2或更高,並且系統爲每個對象保留一對標誌,指示gen0或gen1集合自上一次修改對象以來,系統可以知道何時執行gen0或gen1集合,該對象不包含任何gen0或gen1引用。一個非常有用的優化。 – supercat 2012-02-03 18:11:13