当前位置: 首页 > 面试题库 >

如何以编程方式找出我的PermGen空间使用情况?

凤伟泽
2023-03-14
问题内容

我正在尝试java.lang.OutOfMemoryError: PermGen Space在Sun的Hotspot
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();
}

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



 类似资料:
  • 问题内容: 我正在寻找示例Java JMX代码以从另一个VM访问JMX属性的值。 使用JConsole,我可以毫无疑问地查看java.lang / Memory / Attributes / HeapMemory 我如何从VM中运行的Java程序中获得相同的信息? 需要任何命令行选项或其他需要启动的示例。 问题答案: 您需要设置一个JMXConnector。这是一个代码片段,它将获取远程计算机上已

  • 问题内容: 我知道我可以找到我正在运行的Swift版本,还原到Terminal并输入: 另外,我一直在阅读有关Swift中的预处理器宏的信息,但是找不到Swift版本常量很幸运。 随着Swift 1.2的到来,最好标记仅在Swift 1.1上运行的旧代码(Xcode最高为6.2)或需要Xcode 6.3的新代码(Swift 1.2)。 注意:我也可以使用system()做类似的事情: 然后打开so

  • 问题内容: 我想使用 ImageJ的 find edge选项,使用edges-found数组并将其以编程方式保存到另一个文件。 但是,函数 findEdges 是抽象的,我无法找到边缘找到的图像。 编辑: 我写了以下几行: 但是,当我尝试打印BufferedImage的RGB值时,它只为每个像素RGB打印“ -16777216”。 问题答案: 好的,我找到了解决方案,问题是我没有将ColorPro

  • 我如何以编程方式关闭一个Flutter应用程序?我尝试弹出唯一的屏幕,但结果是黑屏。

  • 我在我的应用程序中使用EJB3.1。 我想在我的应用程序中将一个EJB的JNDI查找名称发送到另一个应用程序,以便它可以在运行时使用它 用程序找出任意EJB的查找名的过程是什么?

  • 使用 lavas init 创建的模板项目中,在以下场景下都会以编程方式使用 Lavas: server.dev.js 开发环境下的 SPA/SSR 模式。 server.prod.js 生产环境下的 SSR 模式。 可见以编程方式使用 Lavas 的主要场景就是 SSR 模式,而在 SPA 模式下仅仅是供开发服务器使用。因此,如果开发者选择了 SSR 模式,阅读下面的内容将十分有帮助: 如何选择