知识大全 Java内存泄漏调试
Posted 命令
篇首语:恐惧自己受苦的人,已经因为自己的恐惧在受苦。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java内存泄漏调试相关的知识,希望对你有一定的参考价值。
Java内存泄漏调试 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
JDK本身为调试内存泄漏问题提供了比较完善的工具
先用命令jps找出要调试的jvm的进程id(jps这个命令 就是ps命令前面加j 列出所有正在运行的jvm的进程id)
例如 jps
输出类似下面这样 java_app jar startup jar Jps Main Bootstrap
假设我们要调试的进程id是
如果只是想简单观察一下堆内存的使用情况 可以用命令jmap histo live 这个命令会输出指定的jvm上当前各个Java类的实例数 占用的内存大小和完整的类名 虚拟机内部类的类名前面有 * 标记
如果想得到堆内存使用的详细情况 可以用命令jmap dump live format=b file=/tmp/java_app heap bin
这样在/tmp目录下得到一个java_app heap bin文件 其中保存的信息就是指定的jvm中堆内存的使用详情 这个二进制文件可以用JDK附带的jhat(Java Heap Analysis Tool)来分析
jhat J Xmx m /tmp/java_app heap bin
这个工具相当耗内存 如果出现了OutOfMemoryException的话 请加大 J Xmx m中指定的预留堆内存大小再试
Jhat会解析堆内存信息转储文件(上面用jmap生成的 bin文件) 输出大概像下面这样
lewis@mgr $ jhat J Xmx m /tmp/java_app heap bin Reading from /tmp/java_app heap bin……
Dump file created Thu Sep CST Snapshot read resolving……
Resolving objects……
Chasing references expect dots……
Eliminating duplicate references……
Snapshot resolved Started HTTP server on port Server is ready
注意最后两行 堆内存信息转储文件分析完毕后 jhat并不会将分析结果输出为一个静态文件
为了方便查找 以及在相关的类之间导航 jhat会启动一个服务 监听 端口 这时候就可以用浏览器来浏览和分析结果了 在浏览器地址栏里输入
//localhost
cha138/Article/program/Java/hx/201311/26117相关参考
Java内存泄漏分析与解决方案 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java内存泄漏是
ArrayList就是传说中的动态数组就是Array的复杂版本它提供了如下一些好处动态的增加和减少元素灵活的设置数组的大小…… 认真阅读本文我相信一定会对你有帮助比如为什么ArrayList里面
大多Java程序员知道他们的程序通常不会被编译为本机代码而是被编译为由java虚拟机(JVM)执行的字节码格式然而很少有java程序员曾经看过字节码因为他们的工具不鼓励他们去看大多Java调试工具
DataTable.NewRow内存泄漏问题 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 先看
未释放事件Handler可能导致内存泄漏 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 以前曾看
Java内存结构与模型 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一java内存结构 He
深入Java核心Java内存分配原理精讲 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java
Java中的堆栈内存浅析 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java把内存划分成两种
JAVA调试技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 这份材料介绍JAVA的调试技术范
Java优化编程--内存管理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 众所周知java的J