jmap相关内容
..
我今天一直在试验 jmap -histo 和 jmap -dump 按此顺序运行时 jmap -dump:format=b,file=heap.1 [pid]jmap -dump:live,format=b,file=heap.2 [pid]jmap -dump:format=b,file=heap.3 [pid] heap.3 更类似于 heap.2 而不是 heap.1.特别是,我对
..
所以我在一个远程盒子上查看一个带有 jmap 的堆,我想强制对其进行垃圾收集.在不弹出 jvisualvm 或 jconsole 和朋友的情况下如何做到这一点? 我知道您不应该进行强制垃圾回收的做法——您应该弄清楚堆变大/增长的原因. 我也意识到 System.GC() 实际上并不强制进行垃圾回收——它只是告诉 GC 你希望它发生. 话虽如此,有没有办法轻松做到这一点?我缺少一些
..
在 jmap 进行内存转储时,我的 java 应用程序是否继续运行? 解决方案 您的应用程序已停止.获得准确堆转储的唯一实用方法是在创建转储时停止所有应用程序活动. 这是“短暂"暂停还是“长时间"暂停取决于倾倒了多少.如果您使用“-dump",那么您将转储整个堆,包括无法访问的对象.如果您使用“-dump:live",您将只转储可访问的对象……但这也需要(至少)标记堆以找出哪些对象是
..
我正在尝试使用 jmap 和 jhat.每次我这样做时,我都会看到特定对象类型的奇怪符号,例如字符串数组的 [S 和字符数组的 [C.我从来不记得什么是什么意思,而且很难用谷歌搜索这些东西. (EDIT:为了证明我的观点,事实证明 [S 是短数组,[C 是字符数组.) 有人愿意制作一个表格,列出所有不同的类名称及其含义吗?或者把我指向这样的表? 我特别想知道[Ljava.lang
..
问题 我们正试图找出我们的 Web 应用程序中大量内存泄漏的罪魁祸首.我们在查找内存泄漏方面的经验非常有限,但我们发现了如何使用 jmap 进行 java 堆转储并在 Eclipse MAT 中对其进行分析. 但是,由于我们的应用程序使用 56/60GB 内存,堆转储的大小仅为 16GB,在 Eclipse MAT 中甚至更少. 上下文 我们的服务器在 Ubuntu 14.
..
我想弄清楚为什么 Elasticsearch 节点上的 JVM 堆使用率始终保持在 80% 以上.为了做到这一点,我通过运行进行堆转储 jmap.exe -heap:format=b 5348 (5348 是进程 ID).然后我可以使用 VisualVM 分析转储. 问题是jmap在进行转储时暂停了JVM,所以节点基本离线5分钟左右. 这篇文章依赖于在 Linux 上使用 gdb
..
我已经使用 jmap 工具从运行了几天的Java应用程序生成了一个堆转储->这导致了一个大的二进制堆转储文件. 如何在IntellIJ IDEA中对此堆转储执行内存分析? 我知道有用于Eclipse和Netbeans的工具,但如果可能的话,我宁愿使用IDEA. 分析的基本结果将告诉我每个类在内存中每个对象的实例数,从而使我能够开始调试内存泄漏. 解决方案 最好的方法是 M
..
我了解新世代/旧世代/perm世代之间的区别,但是我不知道“到太空"和“从太空"是什么.我看到我的“来自太空"的使用率达到了99.8%,而“至太空"的使用率似乎始终保持在0%. 解决方案 VM中使用的垃圾收集算法中的两个区域. 有关Java的详细信息,请参见:垃圾收集如何在Java中工作 以及有关“从太空"和“到太空"的一般解释: WP 最直接的方法是半空间收集器,它可以
..
我的 jmap 命令是 sudo -u flume/usr/java/jdk1.8.0_60/bin/jmap -F -dump:format = b,file = heap.hprof pid ,但是eclips mat无法打开转储文件并引发异常. java.lang.NullPointerException在org.eclipse.mat.hprof.HprofParserHandlerIm
..
我们知道jmap -histo:live会触发一个完整的gc以确定活动对象: 在发生以下情况时,jmap会强制进行垃圾收集吗?使用实时选项吗? 因为jmap -histo考虑了堆中的所有对象(年轻一代和老一代中的那些对象),所以我的意思是,jmap -histo也可以触发完整的gc.但是,我找不到关于jmap -histo是否可以触发完整gc的可靠文档. jmap -histo可
..
我使用eclipse ide(kepler)的内存分析器,试图在程序运行时从本地运行的VM获取堆转储,但是“获取堆转储”对话框未列出要选择的pid。 我尝试配置hdrof jmap转储提供程序 with -jdkhome C:\Program文件\Java\jdk1.8.0_05\bin ,但没有任何反应。 任何解决方案。 谢谢。 解决方案 删除您路径中的bin
..
在运行的进程中,每30分钟左右使用jmap -histo命令,我发现了一种显然是内存泄漏的对象(在桌面应用程序中). 造成泄漏的对象( Ie 是唯一一种其实例数随时间增长并且数量巨大并且增长的对象)是 int [] . 我怀疑是BufferedImage的罪魁祸首,但我对此不确定(我非常注意冲洗/清零BufferedImage,但我仍然认为这是泄漏的根源). 但是,我还在程序的另
..
在少数情况下,我们的应用程序使用大约12 GB的内存. 我们尝试使用jmap实用程序获取堆转储.由于应用程序正在使用一些GB的内存,因此会导致应用程序停止响应并在生产中引起问题. 在我们的例子中,堆使用率在6小时内突然从2-3 GB增加到12GB.为了找到内存使用趋势,我们尝试在重新启动应用程序后每隔一小时收集一次堆转储.但是如前所述,由于使用jmap会导致应用程序挂起,因此我们需要重新启动
..
当jmap进行内存转储时,我的Java应用程序是否可以继续运行? 解决方案 您的应用程序已停止.获得准确的堆转储的唯一实际方法是在创建转储时停止所有应用程序活动. 这是“简短"暂停还是“长时间"暂停取决于所转储的数量.如果使用"-dump",则将转储整个堆,包括不可达的对象.如果使用"-dump:live",则将仅转储可访问的对象……但这也(至少)需要标记堆以找出可访问的对象.
..
并且总是有大多数实例,就像这样 enter codnum #instances #bytes class name ---------------------------------------------- 1: 82828 10033408 [C 2: 39920 6012864 [B
..
如标题所述,jmap -histo和jmap -heap分别给jvm带来了多少开销? 如果内存敏感的Java进程位于OutOfMemory的边缘(例如,大约96%的堆已满,并且无法由完整的gc清除),那么其中一项操作可能会带来jvm到内存不足? 解决方案 jmap -histo和jmap -heap的工作方式不同:jmap -histo使用动态附加机制,而jmap -heap通过Ho
..
快速提问 jmap堆转储仅包含旧一代,还是包含年轻一代? 详细说明 我有2个堆转储(jmap -heap:format=b 9999): 我的一台服务器没有负载(没有HTTP请求) 在50%CPU上工作时一个,高负载(基准测试) 现在,第一个转储显示的堆大小大于第二个(我认为这很奇怪). 这可能是因为Garbage收集器经常运行(是的,JVM几乎已满)导致Yo
..
我们正在研究客户端的生产服务器堆,以检测和解决内存泄漏问题。为此,我们定期使用jmap来收集必要的信息。 但是上周我们无法进行转储,因为它触发了EOF错误并关闭了Tomcat实例。 我在互联网上搜索但未找到有关此错误的任何具体信息。我们检测到只有在使用 Gc First 垃圾收集器算法时才会发生。 这是我们用来执行jmap的命令行: jmap - dump:format =
..
问题 我们正试图在我们的Web应用程序中找到大内存泄漏的罪魁祸首。我们在查找内存泄漏方面经验非常有限,但我们发现如何使用 jmap 进行java堆转储并在Eclipse MAT中进行分析。 但是,我们的应用程序使用56 / 60GB内存,堆转储的大小只有16GB,在Eclipse MAT中甚至更少。 上下文 我们的服务器在Ubuntu 14.04上使用Wildfly 8.2
..