如何确定 Java 应用程序中 PermGen 的大小(即以编程方式)?

发布于 2024-09-30 00:09:01 字数 168 浏览 3 评论 0原文

  1. 有什么方法可以测量 Java 应用程序中当前使用永久代 (PermGen) 的大小吗?我无法使用 VisualVM 等外部分析工具。

  2. 更好的是估计 PermGen 中 Java 类的内存消耗。它与字节码文件的大小几乎成正比吗?

  1. Is there any way to measure the currently used size of permanent generation (PermGen) within my Java application? I cannot use external profiling tools such as VisualVM.

  2. Even better would be an estimation of the memory consumption of a Java class in the PermGen. Is it nearly proportional to the size of the bytecode file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

凉城已无爱 2024-10-07 00:09:02

您可以使用 JDK 附带的 MemoryMXBean。但我认为没有办法从正在运行的应用程序中查询 permgen 使用情况。
有关 MemoryMXBean 的文档。

You could use MemoryMXBean that comes with JDK. But I don't think there is a way to query on the permgen usage from within a running application.
Docs about MemoryMXBean.

澜川若宁 2024-10-07 00:09:02

您可以将 JDK 中的 jvisualvm 工具与 Visual GC 插件,用于监视所有 JVM 堆区域,包括 PermGen。

You can use jvisualvm tool from JDK with Visual GC plugin to monitor all JVM heap areas including PermGen.

檐上三寸雪 2024-10-07 00:09:02

如果您不在 Windows 上,您可以尝试 jmap< /a> 随 JDK 一起提供。

If you're not on Windows, you could try jmap which is shipped with the JDK.

芸娘子的小脾气 2024-10-07 00:09:02

您可以使用jmap命令:

jmap [选项]
(连接到正在运行的进程)

jmap [选项]
(连接到核心文件)

jmap [选项] [server_id@]
(连接到远程调试服务器)

其中选项是以下之一:

-heap:打印java堆摘要

-permstat:打印永久代统计信息

You can use the jmap command:

jmap [option]
(to connect to running process)

jmap [option]
(to connect to a core file)

jmap [option] [server_id@]
(to connect to remote debug server)

where options is one of:

-heap : to print java heap summary

-permstat : to print permanent generation statistics

俯瞰星空 2024-10-07 00:09:02

PermGen 的大小与类文件的大小无关。根据 Sun 的规定,PermGen 的默认大小是 64 MB。如果您希望增加它,您可以使用以下命令显式设置它:

-XX:PermSize=164m

在 Java 命令行或启动脚本中。这也是您无需依赖外部工具即可了解其设置的方式。

编辑:

阅读本文以确定当前以编程方式使用的 PermGen 大约数量(即没有外部工具):

http://frankkieviet.blogspot.com/2006/10/how-to-fix-dreaded-permgen-space.html

The size of PermGen has nothing to do with the size of your class files. The default size of PermGen according to Sun is 64 MB. If you wish to increase it you can set it explicitly using:

-XX:PermSize=164m

in your Java command line or startup script. This is also how you can know what it's set to without relying on an external tool.

EDIT:

Read this article to determine approximately how much PermGen is currently being used programmatically (i.e. no external tools):

http://frankkieviet.blogspot.com/2006/10/how-to-fix-dreaded-permgen-space.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文