
正文
java代码dump,JAVA代码规范
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
dump出java虚拟机堆,对应用会有影响吗
1、JConsole启动一个在被观察的Java程序的JVM内部的JMX代理。运行另外一部分代码仅有一点极微弱的影响-但是影响很小。
2、Thread Dump是非常有用的诊断Java应用问题的工具。
3、可以清晰的分类。Heap Dump也叫堆转储文件,是一个Java进程在某个时间点上的内存快照。Heap Dump是有着多种类型的。不过总体上heap dump在触发快照的时候都保存了java对象和类的信息。
4、如果不是用、ma参数,保存下来的dump文件只包含了部分重要资料,比如寄存器和线程栈空间,文件尺寸会比较小,无法分析所有的数据。
5、使用jstat命令会影响java进程 JDK自带VM分析工具jps,jstat,jmap,jconsole 关键字: jdk自带vm分析工具jps,jstat,jmap,jconsole 概述 SUN 的JDK中的几个工具,非常好用。秉承着有免费,不用商用的原则。
6、Java 虚拟机非正常地停止运行可能是多种原因引起的,例如 Java 程序产生了无法处理的异常,虚拟机运行过程中产生不可恢复的错误,虚拟机所在的进程崩溃等。
相关问答
Q1: 如何通过mat从java内存dump中找到缓存对象中的所有字符串
1、当你调用bufferedreader.readLine()方法时,它就会调用filereader的read方法,一个一个地读字符,并且保存在它一块内存中,直到读到回车符,才将内容返回出来。
2、jmapdump内存的命令是:生成堆转储快照。jmap命令基本概述:jmap命令是一个可以输出所有内存中对象的工具,甚至可以将VM中的heap,以二进制输出成文本。
3、打开MAT后,选择File - Open Heap Dump,然后选择要分析的heap dump文件。在分析完成后,选择Dominator Tree或Histogram来查看内存使用情况。
4、通过上面的概览,我们对内存占用情况有了一个总体的了解。先检查一下 MAT 生成的一系列文件。
5、首先学习Android内存管理机制,了解系统如何分配和回收内存。
6、(1)做一些cache的时候,我们不可能把数据库的所有的数据都缓存到内存里面,我们要估计缓存的大小。
Q2: 打开java.dump
但是,java.dump通常是Java进程在运行过程中生成的文件,在程序出现异常或崩溃时可以保存详细的程序状态信息,方便开发人员进行错误分析和调试。
jvisualvm可以监控本地、远程的java进程,实时查看进程的cpu、堆、线程等参数,对java进程生成dump文件,并对dump文件进行分析。像我这种从服务器上dump下来文件也可以直接扔给jvisualvm来分析。
我曾经打开过一个4G的dump文件,但是你的机器内存要足够大啊,老兄。用jvisualVM打开就行,jdk自带的。
这个只有找64位机子上面看了,把xmx设置大些。32位机子上面的内存使用只有3g左右,不会超过dump文件的8g的。
一。查看javacore文件 下载ThreadDumpAnalyser,graphviz,svgviewer 运行runall.bat javacore.txt,会产生三个文件dumps.xml,locktreesvg,sidebyside.html 二。
Q3: 为什么java的session在dump时没有
1、你给session赋值没赋值成功,所以你读取session时为空。你给session赋值了,但是session很快就失效了。你有变量跟session的名字一样,值被覆盖了或者覆盖了空值。或者你的java程序里面设置了禁用session,这个需要你打开session设置。
2、感觉并非是操作系统导致的session失效,建议在web.xml里面注册一个HttpSessionListener,确认下确实是session销毁了还是别的原因导致的没有数据获取到。
3、第一方法:直接不用session了,改成用cookie实现,这个方法缺点就是如果客户端禁用了cookie则程序的部分功能不能实现,不过能禁用cookie的一般都是开发人员。。
4、如果当前没有session的话,肯定就获取不到的,并且这个getSession只能是获取存在的session,不能创建。所以可以通过openSession或getCurrentSession方法来进行session获取。
5、session存放在服务器内存中,并不是在浏览器所在的机器上。Session的id保存在客户机的cookie中。
Q4: eclipse如何根据dump的内存数据,生成对应的函数调用栈?
JSR-45 是这样规定的:JSP 被编译成 JAVA 代码时,同时生成一份 JSP 文件名和行号与 JAVA 行号之间的对应表(SMAP)。
函数接收栈顶的 Lua 函数做参数, 然后生成它的二进制代码块。 若被导出的东西被再次加载, 加载的结果就相当于原来的函数。
设置JVM参数,-XX:+HeapDumpOnOutOfMemoryError,在内存溢出的时候就会生成Heap dump文件 使用jmap。
本文实例就是使用 JMap 直接获取了 Eclipse Galileo 进程的堆转储文件。
Q5: 如何dump出一个Java进程里的类对应的Class文件
1、该过程需要经历四个步骤:解压,反编译,修改,打包。解压:jar文件和我们平常的rar和zip文件一样是属于压缩文件,通过一般的解压缩工具(例如:winrar)都能解压。解压之后生成的文件为**.class的字节码文件。
2、使用jvisualvm来分析dump文件:jvisualvm是JDK自带的Java性能分析工具,在JDK的bin目录下,文件名就叫jvisualvm.exe。
3、安装好JDK后,用命令模式,进入相应目录。然后输入javac 你的类.java就可以编译成class文件了。
关于java代码dump和JAVA代码规范的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






