问题标签 [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.

0 投票
1 回答
1187 浏览

memory - Jmapping的基础知识?

我在那里进行了一些搜索,但找不到太多真正有用的信息,但是有人可以尝试解释 Java 内存映射的基础知识吗?比如在哪里/如何使用它,它的目的,也许还有一些语法示例(输入/输出类型)?我很快就要参加 Java 测试,这可能是主题之一,但在我所有的教程中,Jmap 都没有出现。提前致谢

编辑:我指的是工具:jmap

0 投票
2 回答
188 浏览

jmap - 我可以设置像 jhat 或 jmap 这样的配置文件以定期或在检测到异常时拍摄快照吗

所以基本上在我们的例子中,服务器神秘地关闭了,我们经常重新启动它,它开始正常工作。到目前为止,我们还没有能够建立一个模式。查看线程转储确实有帮助,但我们也想分析内存使用情况。是否可以将这些工具设置为定期运行(以便它们定期保存快照)或在检测到异常或崩溃时运行

0 投票
0 回答
1004 浏览

java - jmap -histo:live 输出为空

有时当我执行命令时: "$JAVA_HOME/bin/jmap -histo:live " + pid + " > " + fileName 我得到一个空(空白)文件。

为什么会发生这种情况?

PS 这是用于自动测试(内存泄漏测试)。 使用选项 -F(强制)我得到直方图,但它包括非活动对象。

谢谢,任何帮助。

0 投票
3 回答
30884 浏览

java - 使用 gcore、jmap 转换为 hprof 文件格式的核心转储失败并显示错误消息

我们最近发生了一次 JVM 崩溃,留下了一个由 gcore 命令生成的核心转储文件。我们想查看文件的内容并找出导致崩溃的确切原因。

使用该jmap命令,您应该能够将核心转储文件转换为 hprof 文件格式的文件,然后您可以使用 VisualVM 和许多其他工具对其进行分析。我试过这个并收到一条错误消息。这是我运行的命令(在发生崩溃的同一个盒子上,使用相同的 JVM):

整个回应是:

这不是一个非常有用的错误消息。我想知道这是否是权限问题,但运行该命令的消息与运行导致核心转储的 JVM 的相同使用相同。我也想知道核心文件是否损坏,所以我决定使用gdb看看我是否可以打开核心文件,看看里面有什么。这就是我得到的:

gbd那时我退出了,因为我对以及如何使用它来诊断这类问题一无所知。我什至不明白最后一个命令做了什么。值得注意的一点是,输出中正好有 134 行“新线程”行,如果每行都代表 JVM 中产生的一个新线程,那么这可能是 JVM 死亡的原因。

所以我的问题实际上是三折-

1)知道为什么该jmap命令可能会给出该错误消息吗?

2)任何想法gdb输出意味着什么?

3)任何想法如何使用gdb来进一步诊断这个问题?

0 投票
1 回答
707 浏览

java - JMAP -dump 未在 java 上执行:runtime.exec()

我试图执行 'jmap -dump:format =b; file" 命令在 runtime.exec() 中,但它不会在其他命令(如日期、密码)工作正常的地方执行。有人知道为什么吗?

公共静态无效命令(字符串 s){

0 投票
3 回答
19992 浏览

java - Java:New Generation Used 100%, Eden Space Used 100%, From Space Used 100%

jmap -heap 给我的输出是:

新代使用率 100%,伊甸园空间使用率 100%,从空间使用率 100%,到空间使用率:0%,烫发使用率:38%

这是来自太空的 100% 的新伊甸园 - 问题吗?

我的 JAVA OPTS 是:-Xms10240m -Xmx14336m -XX:PermSize=192m -XX:MaxPermSize=256m -XX:NewSize=8192m -XX:MaxNewSize=8192m -XX:-DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=60

我看到很多快速垃圾收集。但是使用 JConsole 之类的工具没有内存泄漏

内存使用情况可以在这里看到: http ://tinypic.com/view.php?pic=wo213&s=6

JDK 1.6 正在使用中。

0 投票
4 回答
6973 浏览

garbage-collection - jmap -histo 可以触发完整的垃圾收集吗?

我们知道 jmap -histo:live 会触发完整的 gc 以确定活动对象:

使用 live 选项时,jmap 是否强制进行垃圾收集?

由于 jmap -histo 考虑了堆中的所有对象(年轻代和老年代的对象),我的观点是, jmap -histo 也可以触发完整的 gc。但是,我找不到关于 jmap -histo 是否会触发完整 gc 的可靠文档。

jmap -histo 可以触发完整的垃圾收集吗?

0 投票
1 回答
188 浏览

java - 如何分析哪些对象属于哪一代?

我有一个长时间运行(多天)的应用程序,其中包含我希望在它们被垃圾收集之前保留不同时间长度的对象。假设有四个类别:

  1. 非常短暂(<1s)
  2. 在用户关注的持续时间内存活(1s < 18h)
  3. 每日数据(~24h)
  4. 'Eternal'(很少,应用程序的生命周期)

为了帮助进行调优,我想找到一种使用 Java 6 Hotspot VM 检查实际数据进入终身代的方法。使用 jmap 生成 HPROF 文件似乎不包含世代信息。有没有其他方法可以获取这些信息?

0 投票
2 回答
4773 浏览

jvm - Java 堆转储权限

在 Linux 机器(也很可能是 Unix 机器)中生成的 Java 堆转储具有访问限制。堆只能由进程的所有者读取(ACL 掩码设置为 600)。我了解这是出于安全原因。但是,我找不到任何引用或解释该行为的文档。谁能指出我的文档(如果有的话)?另外,有没有办法覆盖这种行为?

0 投票
1 回答
334 浏览

object - jmap 和对象大小

我在我的 JVM 上运行 jmap 试图了解一些内存泄漏,我发现了一些奇怪的东西:java.lang.Long使用 24 字节而不是 8 字节!

有人能告诉我我的错误在哪里吗?

怎么回事????