كيف يمكنني معرفة برمجيا بلدي PermGen استخدام الفضاء؟

StackOverflow https://stackoverflow.com/questions/697336

سؤال

وأنا أحاول لتشخيص الخطأ java.lang.OutOfMemoryError: PermGen Space عند تشغيل هوت سبوت JVM الشمس، وأود أن أعرف كم PermGen الفضاء برنامجي يستخدم في نقاط مختلفة. هل هناك طريقة لمعرفة هذه المعلومات برمجيا؟

هل كانت مفيدة؟

المحلول

ويمكنك استخدام شيء من هذا القبيل:

Iterator<MemoryPoolMXBean> iter = ManagementFactory.getMemoryPoolMXBeans().iterator();
while (iter.hasNext())
{
    MemoryPoolMXBean item = iter.next();
    String name = item.getName();
    MemoryType type = item.getType();
    MemoryUsage usage = item.getUsage();
    MemoryUsage peak = item.getPeakUsage();
    MemoryUsage collections = item.getCollectionUsage();
}

وهذا سوف أعطيك كل أنواع من الذاكرة. كنت مهتما في "بيرم الجنرال" نوع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top