Chcę zbudować system MemoryWarning zgodnie z opisem w wielu artykułach: np. jak w http://www.javaspecialists.eu/archive/Issue092.html.Jak zidentyfikować wolną przestrzeń
Dlatego chcę zidentyfikować zwyczajnych miejsca takiego:
private MemoryPoolMXBean findTenuredGenPool() {
for (MemoryPoolMXBean pool : ManagementFactory.getMemoryPoolMXBeans()) {
if(pool is tenured space)
return tenured
}
}
widziałem dwa różne sposoby w celu identyfikacji zwyczajnych przestrzeni
- Sprawdź, czy nazwa puli równa „PS Old Gen” i/lub "Tenured Gen".
- Sprawdź czy "
pool.getType() == MemoryType.HEAP && pool.isUsageThresholdSupported()
"
problem z 1: Co o CMS Starego Gen? A co z innymi lokalami? Czy powinienem dodać je wszystkie do listy stałych nazw?
Problem z 2: Czy jest to "bezpieczny" sposób na odzyskanie stałego miejsca? Czy to jest niezawodne?
Dzięki!