【问题标题】:How do I programmatically find out my PermGen space usage?如何以编程方式找出我的 PermGen 空间使用情况?
【发布时间】:2010-10-16 09:20:21
【问题描述】:

我正在尝试在 Sun 的 Hotspot JVM 上运行时诊断 java.lang.OutOfMemoryError: PermGen Space 错误,并且想知道我的程序在各个点使用了多少 PermGen 空间。有没有办法以编程方式找出这些信息?

【问题讨论】:

    标签: java memory-leaks jvm-hotspot permgen


    【解决方案1】:

    【讨论】:

    • 感谢您让我开始。
    【解决方案2】:

    你可以这样使用:

    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();
    }
    

    这将为您提供所有类型的内存。您对“Perm Gen”类型感兴趣。

    【讨论】:

    • 谢谢,这行得通。我正在使用 MemoryPoolMXBean 其中 name.equalsIgnoreCase("Perm Gen").
    • 需要信息,谢谢kgiannakakis。
    猜你喜欢
    • 1970-01-01
    • 2014-09-13
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多