0
MemoryMXBean을 사용하여 런타임 메모리 분석과 관련하여 흥미로운 효과가 있습니다. NonHeap과 함께 힙의 사용 가능한 메모리를 결정하고 싶습니다. 그래서 내 코드는 다음과 같습니다 Java MemoryMXBean 사용 된 메모리가 Max보다 큼
static MemoryMXBean mbean = ManagementFactory.getMemoryMXBean();
long fullused = mbean.getHeapMemoryUsage().getUsed() + mbean.getNonHeapMemoryUsage().getUsed();
long fullmax = mbean.getHeapMemoryUsage().getMax() + mbean.getNonHeapMemoryUsage().getMax();
long fullfree = fullmax - fullused;
때때로 fullFree에 대한 결과가 음의 값이다. 어떻게 그럴 수 있습니까? 사용 된 mem에 대한 계산 후에 일부 가비지 수집이 수행 된 경쟁 조건이 있습니까? 내 기록에서는 꽤 자주 볼 수 있으므로 경쟁 조건 이론을 의심합니다. 다른 의견이 있으십니까?
고맙습니다. – magicroomy