问题标签 [jmap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 程序内部的java堆直方图
我如何heap-dump
从我的 Java 程序中调用类似于 jmap 使用"-histo"
选项生成的内容。据了解heap-dump
的形式(或类似的binary
输出)可以通过使用来处理,但不能用于堆直方图(?)"-dump" option
jmap
HotSpotDiagnosticMXBean
java - JMAP 命令和调试对象的错误是 64 位
我需要在 IST 环境中运行的 Web 逻辑服务器的堆转储。我无权访问,因此我已要求支持团队这样做。在 UNIX 上执行的命令如下:
./jmap -heap:格式=b 19153
当支持团队执行命令时,他们会得到以下输出:
正在附加到进程 ID 19153,请稍候...
附加到进程时出错:附加失败:调试对象是 64 位,使用 java -d64 作为调试器
我认为服务器是 64 位的,但是这个建议在说什么?这是否意味着服务器应该在命令中使用该标志启动?
我试图在互联网上寻找这样的问题,但我没有得到任何有用的信息。有没有人知道如何找到解决方案!!!???
我感谢大家提供您的帮助!
问候,
凯坦
java - jmap 工具适用于 JVM 1.3 及更早版本吗?
我们可以使用 jmap 工具(Java 1.4 版本)为较旧的 jvm 版本生成堆转储文件吗?例如 Java 1.3?如果不可能,有没有办法从 Java 1.3 JVM 获取堆转储?
java - 使用 JMAP 进行堆转储时出现异常
当我使用堆转储时出现以下异常
jmap -F -dump:format=b,file=/tmp/heapdump/before.hprof 10737
有谁知道如何解决这个问题?
java - sun.tools.jmap.JMap.main 无法识别
我有行'sun.tools.jmap.JMap.main(args);' 在我的代码中。Eclipse 给出错误,说类没有被识别。所以,我尝试下载 sun.tools jar。但我在任何地方都找不到这个罐子!
我不确定要包含什么来消除此错误。请帮忙!
java - 如何在堆转储中查看程序变量名称和值?
我在执行 Java 程序时使用 JMAP 创建 JVM 的堆转储。然后使用 JHAT 我在浏览器中打开转储详细信息。
现在,我可以看到内存转储的许多细节,但我不知道如何简单地查看程序变量值及其值。你能在这里指导我吗?我只需要使用命令行来显示变量名称和值。
提前致谢!
java - 垃圾收集器优先和 JMap EOF 错误
我们正在处理客户的生产服务器堆以检测和解决内存泄漏。为此,我们定期使用 jmap 来收集必要的信息。
但是上周我们无法进行转储,因为它触发了 EOF 错误并关闭了 Tomcat 实例。
我在互联网上搜索,但找不到有关此错误的任何具体信息。我们检测到它仅在使用Gc First
垃圾收集器算法时发生。
这是我们用来执行 jmap 的命令行:
jmap -dump:format=b,file=heap.bin <PID>
服务器上的 Java 版本:JDK 1.7.0_7 x64
有没有人已经遇到过这种错误?可能缺少某些配置或需要对 java/jmap 的补丁。
更新
我们收集的有关此错误的更多信息:
注意:目标目录有超过 500gb 的可用空间
输出到 catalina.out 的错误(JVM 转储错误):
java - Java 内存:引用从何而来?
我有一个使用大量内存的 Java 程序。我使用 jmap -histo:live 来追踪正在使用所有内存的对象。只有几种类型占用了大部分内存,其中 > 1M,但我不知道引用来自哪里。
有没有办法从命令行告诉哪些类型的对象持有对这些的引用?
谢谢!
java - Java:在没有 jmap 或不挂起应用程序的情况下获取堆转储
在少数情况下,我们的应用程序使用了大约 12 GB 的内存。我们尝试使用 jmap 实用程序获取堆转储。由于应用程序正在使用一些 GB 的内存,它会导致应用程序停止响应并导致生产出现问题。
在我们的例子中,堆使用量在 6 小时内突然从 2-3 GB 增加到 12 GB。为了找出内存使用趋势,我们尝试在重新启动应用程序后每隔一小时收集一次堆转储。但正如所说,由于使用 jmap 会导致应用程序挂起,我们需要重新启动它,并且我们无法获得内存使用的趋势。
有没有办法在不挂起应用程序的情况下获取堆转储,或者是否有除 jmap 之外的实用程序来收集堆转储。
对此的想法受到高度赞赏,因为如果不了解内存使用的趋势,就很难解决这个问题。
注意:我们的应用程序在 CentOS 中运行。
谢谢,阿伦
jmap - Jmap - 连接到远程调试服务器时出错
我的要求是使用 Jmap 创建一个远程服务器的堆内存转储文件。我是这样做的。
这很好用,因为 3104 是我本地机器上进程的 pid。我如何对远程服务器执行相同操作?我试过
但它失败了。我尝试使用 jsadebugd 创建调试服务器,如下所示。1.启动rmiregistry
rmiregistry -J-Xbootclasspath/p:$JAVA_HOME/lib/sa-jdi.jar
2.运行jsadebugd
但是第2步抛出以下错误:
帮我摆脱它。