我想构建一个 MemoryWarningSystem ,如许多文章中所述:例如http://www.javaspecialists.eu/archive/Issue092.html。
因此,我想像这样识别终身空间:
private MemoryPoolMXBean findTenuredGenPool() {
for (MemoryPoolMXBean pool : ManagementFactory.getMemoryPoolMXBeans()) {
if(pool is tenured space)
return tenured
}
}
我见过两种不同的方法来识别终身空间
- 检查池名称是否等于“PS Old Gen”和/或“Tenured Gen”。
- 检查是否“
pool.getType() == MemoryType.HEAP && pool.isUsageThresholdSupported()
”
问题 1:CMS Old Gen 怎么样?那么其他终身职位呢?我应该将它们都添加到终身姓名列表中吗?
问题 2:这是检索终身空间的“安全”方式吗?它可靠吗?
谢谢!