
正文
java代码获取dump,java代码获取jvm参数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
请教java堆内存dump文件太大,如何打开
dump文件太大可以用如下软件打开:Microsoft的Online Crash Analysis:该工具可以分析Windows操作系统的dump文件,提供有关崩溃原因的详细信息。需要将dump文件上传到该网站,然后等待分析结果。
Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专用工具软件打开,比如使用WinDbg打开。在Windbg中可以通过.dump命令保存进程的dump文件。
我曾经打开过一个4G的dump文件,但是你的机器内存要足够大啊,老兄。用jvisualVM打开就行,jdk自带的。
服务器是64位的?貌似都不怎么推荐用64位的jdk。这个只有找64位机子上面看了,把xmx设置大些。32位机子上面的内存使用只有3g左右,不会超过dump文件的8g的。
相关问答
Q1: 如何通过mat从java内存dump中找到缓存对象中的所有字符串
1、首先,需要生成内存dump文件,使用Java虚拟机附带的jmap工具生成内存dump文件。然后,使用内存分析工具打开dump文件,内存dump文件不能直接阅读,可以使用EclipseMAT、VisualVM这些内存分析工具打开。
2、该对象是一个Bitmap对象,你如果想知道该对象到底是什么图片,可以使用图片工具gimp工具浏览该对象。histogram视图主要是查看某个类的实例个数,比如我们在检查内存泄漏时候,要判断是否频繁创建了对象,就可以来看对象的个数来看。
3、打开MAT后,选择File - Open Heap Dump,然后选择要分析的heap dump文件。在分析完成后,选择Dominator Tree或Histogram来查看内存使用情况。
Q2: 如何产生javacore文件和heapdump文件
1、JavaCore/HeapDump这两个文件可以用手工的方式生成,当我们会遇到系统变慢或无响应的情况,这时就以采用手工的方式生成JavaCore及HeapDump文件。
2、kill -3 pid 也管用,只不过是他会把线程栈信息输出到控制台日志中,而不是当前命令的输出结果。如果安装了JDK,可以用jdk自带的命令工具。
3、点击dumpHeap按钮生成dump文件。
Q3: java内存dump文件怎么定位到具体的线程
1、这段代码首先通过ManagementFactory.getThreadMXBean()获取ThreadMXBean实例,然后调用dumpAllThreads()方法获取所有线程的ThreadInfo,最后遍历并打印所有线程的ID和名称。
2、要定位到行,代码要debug编译,至少要带上行信息。线程占用内存高低,可以用jmap做heap dump出来给MomoryAnalysis分析他可以按线程统计,一般也可以用它来找出造成OOM的原因。
3、)在 dump 日志里查找字符串 0x00000000acf4d0c0,发现有大量线程都在等待给这个地址上锁。如果能在日志里找到谁获得了这个锁(如locked 0x00000000acf4d0c0 ),就可以顺藤摸瓜了。
Q4: 如何查看javacore和heapdump文件
或者,运行jconsole, 选择 MBeans - com.sun.management - HotSpotDiagnostic - Operations - dumpHeap 在参数p0中填写保存dump文件的路径,如果要使用Eclipse Memory Analyzer来分析则文件的后缀要为hprof。
JavaCore/HeapDump这两个文件可以用手工的方式生成,当我们会遇到系统变慢或无响应的情况,这时就以采用手工的方式生成JavaCore及HeapDump文件。
-an netstattxtps -ef pseftxtps aux psauxtxt将上面产生的 txt 文件和/usr/WebSphere/AppServer/javacore*文件和heapdump文件拷贝到本地,然后删除这些文件,因为这些文件会占用较大的文件系统空间。
关于java代码获取dump和java代码获取jvm参数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







