问题标签 [heap-dump]
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 - 如何以编程方式获取 jmap 直方图?
我想jmap -histo
从受监视的应用程序内部以编程方式获得等效的输出。我看到可以通过 HotSpot 诊断 bean 触发堆转储,但我看不到如何获取直方图数据。是否可以 ?
java - 内存管理分析
我正在为我的 Java Web 应用程序进行内存管理分析,
在启动我的 tomcat 之前,RAM 中的可用内存约为 595 MB,一旦我启动服务器,可用内存将变为 151 MB。当我进行堆转储时,对象占用了 262 MB。
那么仅tomcat会占用剩余的181 MB吗?
另一个问题是,我对 500 个用户进行了负载测试。可用内存达到 8MB,当我在这里进行堆转储时,大约是 265MB。所以可用空间 151 MB 减少到 8MB,可能是什么原因
请注意,我使用top
命令检查 RAM 中的空闲内存。
java - 解析堆转储文件
我有一个应用程序,显然我创建了太多对象,我收到以下消息:
java.lang.OutOfMemoryError: Java heap space Dumping heap to java_pid2468.hprof ... Heap dump file created [1087703293 bytes in 18.711 secs] 线程“main”中的异常 java.lang.OutOfMemoryError: Java heap space
但是我在MAT中安装了插件,我想看看我构建了多少个对象,哪些对象占用了最多的内存。但是,当我想解析 hprof 文件时,我收到此错误消息:
在以下期间发生内部错误:“从 'C:\Users\sekulicd\workspace\Csv_validation_MyIsam\java_pid2468.hprof' 解析堆转储”。Java 堆空间
hprof 文件的大小为 1,087,703,293 字节,我需要这些问题的答案:
- 由于 hprof 文件大小导致解析失败?
- 我可以只为那些没有发生错误“java.lang.OutOfMemoryError: Java heap space”的项目解析 hprof 文件吗?
- 有没有办法解析这个文件(1,087,703,293 字节)?
c# - 有什么方法可以在 C# 中的 OutOfMemoryException 上创建堆转储/直方图?
回到 Java 世界,我能够指定 JVM 应该在第一个 OutOfMemoryError 上创建一个堆转储文件。C#中有什么等价的吗?
堆转储将是理想的,但我会满足于直方图。
如果无法自动执行此操作,是否有办法挂钩此异常,然后手动遍历堆?
java - 我可以对堆转储文件运行 Java 垃圾收集吗?
我有一个巨大的 Java 堆转储文件。它还包含(我相信)无法访问的对象,这些对象将是 JVM 收集的垃圾(或者希望如此)。
有没有一种工具可以让我对这个文件运行垃圾收集器,这样我就可以
- 摆脱无用的数据
- 使用各种算法验证/模拟垃圾收集,看看它们的工作情况如何
- 识别垃圾收集问题
java - 在已经崩溃的系统上进行堆转储
由于内存泄漏,我的 tomcat 应用程序崩溃了。我想在崩溃的系统/jvm 上进行堆转储。可能吗?我用的是windows/tomcat 6 怎么办?
android - 如何分析 Android 上的堆转储?
我在 logcat 中收到很多“dalvikvm: GC_CONCURRENT ...”消息,谷歌搜索导致我下载了 Eclipse 内存分析器...我已经知道如何使用它,但我不知道如何去理解它。我以前从未处理过内存泄漏,所以请耐心等待。
“泄漏嫌疑人”包括“系统类加载器”加载的“android.content.res.Resources”、“android.graphics.Bitmap”和“org.apache.harmony.xnet.provider.jsse.TrustManagerImpl”。我真的不知道这意味着什么,也不知道这对我有什么帮助;我什至不在我正在尝试制作的应用程序中使用位图。
这应该如何帮助我?
java - JMAP -dump 未在 java 上执行:runtime.exec()
我试图执行 'jmap -dump:format =b; file" 命令在 runtime.exec() 中,但它不会在其他命令(如日期、密码)工作正常的地方执行。有人知道为什么吗?
公共静态无效命令(字符串 s){
garbage-collection - 执行手动 GC 后生成堆转储显着减少
这是我在堆栈溢出论坛的第一篇文章。我们最近遇到了一些 Java OOME 问题,并且使用 jvisualvm、yourkit 和 eclipse mat 工具能够识别和修复一些问题......
在分析过程中观察到的一种行为是,当我们使用 jconsole 或 jvisualvm 手动创建 heapdump 时,jvm 中使用的堆大小在生成 heapdump 后显着减少(从 1.3 GB 到 200 MB)。有人可以就这种行为提出建议吗?这是一个变相的福音,因为每当我看到已用堆大小大于 1.5GB 时,我都会执行手动 GC,系统会恢复到较低的已用堆大小,从而导致 jvm 不会重新启动。
让我知道任何其他详细信息
谢谢大师
unix - 是否可以动态选择是否生成堆转储?
我们有一个应用程序部署到在 UNIX 上运行的 WebSphere 服务器上,我们遇到了两个问题:
- 几分钟后恢复的系统挂起 - 要进行调查,我们将需要线程转储(javacore)。
- 无法恢复并需要重新启动 WebSphere 的系统挂起 - 为了进行调查,我们将需要线程转储和堆转储。
问题是:当系统挂起时,我们不知道是问题 1 还是问题 2。
理想情况下,我们希望先手动生成线程转储,然后等待系统是否恢复。如果没有,那么我们在重新启动 WebSphere 之前生成线程转储和堆转储。
我知道kill -3
(或kill -QUIT
)命令。该命令将仅生成线程转储(如果参数IBM_HEAPDUMP=false
),或线程转储和堆转储(如果IBM_HEAPDUMP=true
)。但是,IBM_HEAPDUMP
必须在 WebSphere 启动之前设置,并且在 WebSphere 运行时不能更改。
IBM_HEAPDUMP
关于参数和命令,我的理解是否正确kill -3
?
另外,是否可以按照我描述的方式获取日志?(即在生成 JVM 诊断时,选择是否即时生成堆转储)