当前位置: 首页 > 知识库问答 >
问题:

从Java进程获取堆转储以调试内存泄漏

程俊誉
2023-03-14

遵循下面的过程,但我无法分析转储生成。

    null

提前谢了。

共有1个答案

马淇
2023-03-14

您需要等待堆转储完成。根据堆的大小,可能需要几秒钟到几分钟的时间。至少有一次,我花了20分钟(如果我没记错的话,垃圾堆的大小约为10克)。您可以尝试“-dump:live”选项,该选项将只转储活动对象,而不转储垃圾。

jmap -F -dump:live,format=b,file=<file_name.hprof> <rdu_process_id>

然而,您可能也会遇到这个问题?

 类似资料:
  • 问题描述:我们在一个web应用程序(在CQ5上)中面临以下问题: 系统配置详细信息:系统内存: 7GB Xmx: 3.5 GB Xms: 1 GB MaxPermGen: 300MB最大观察线程数: 620(包括300个超文本传输协议请求服务线程)Xss:默认值 问题是cq5 java进程(运行servlet引擎)消耗的内存随着时间的推移而不断增加。一旦达到6到6.5GB以上(系统内存达到7GB)

  • 我有一个Java堆转储,我想了解使用的堆的大小和可用的空闲内存。我正在使用Eclipse内存分析器。这可能吗?

  • 我已经用工具从运行了几天的Java应用程序中生成了一个堆转储文件,这将导致一个很大的二进制堆转储文件。 我如何在IntellIJ IDEA中对这个堆转储执行内存分析? 我知道有一些用于Eclipse和Netbeans的工具,但如果可能的话,我更愿意使用IDEA。 分析的基本结果将告诉我每个对象在内存中的实例数(每个类),以便我能够开始调试内存泄漏。

  • 问题内容: 我必须在Java应用程序中找到内存泄漏。我对此有一些经验,但希望就此方法论/战略提出建议。欢迎任何参考和建议。 关于我们的情况: 堆转储大于1 GB 我们有5次堆放场。 我们没有任何测试案例可以激发这一点。仅在使用至少一个星期后,它才会在(大规模)系统测试环境中发生。 该系统建立在内部开发的传统框架上,该框架具有许多设计缺陷,以至于无法将它们全部计算在内。 没有人深入了解该框架。它已被

  • 问题内容: 我有一个在django中运行的小型多线程脚本,随着时间的流逝,它开始使用越来越多的内存。将其保留一整天会消耗大约6GB的RAM,我开始进行交换。 在http://www.lshift.net/blog/2008/11/14/tracing-python-memory- leaks 之后,我将其视为最常见的类型(仅使用800M内存): 这没有什么奇怪的。我现在应该怎么做才能帮助调试内存问

  • 问题内容: 读取/ proc / $ PID / maps时,将获得映射的内存区域。这是甩掉其中一个地区的方法吗? 谢谢 问题答案: 不!打电话与。然后打开,寻找区域偏移量,然后按照中给出的那样读取区域的长度。 这是我编写的在C语言中执行的程序。这是我编写的在Python(以及ptrace绑定)中执行的模块。最后,将程序的所有区域转储到files的程序。 请享用!