这个问题的范围仅限于HotSpot 世代。有没有办法以编程方式找出特定实例存在于哪一代。数据如:
- 年轻一代还是老一代?
- 如果年轻,哪个幸存者空间?
- 在 TLAB 内部?哪个线程?
只要我能做这样的事情,任何技术(例如,BTrace,JVMTI )都可以工作:
Object x = new Object();
HotSpotGenerationInfo info = HotSpotGenerationUtil.getInfo(x);
乞丐不能成为选择者,但理想情况下,我还可以了解感兴趣的实例何时从一代转移到另一代(即,基于事件回调——对轮询中隐含的延迟和开销不感兴趣。)
对没有正当理由只说“不”的答案不感兴趣:)