知识大全 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内存泄漏分析与解决方案

Java内存泄漏分析与解决方案  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java内存泄漏是

知识大全 java内存泄漏的定位与分析

  ArrayList就是传说中的动态数组就是Array的复杂版本它提供了如下一些好处动态的增加和减少元素灵活的设置数组的大小……  认真阅读本文我相信一定会对你有帮助比如为什么ArrayList里面

知识大全 提高代码质量及字节码防止内存错误

  大多Java程序员知道他们的程序通常不会被编译为本机代码而是被编译为由java虚拟机(JVM)执行的字节码格式然而很少有java程序员曾经看过字节码因为他们的工具不鼓励他们去看大多Java调试工具

知识大全 DataTable.NewRow 内存泄漏问题

DataTable.NewRow内存泄漏问题  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  先看

知识大全 未释放事件Handler可能导致内存泄漏

未释放事件Handler可能导致内存泄漏  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  以前曾看

知识大全 Java内存结构与模型

Java内存结构与模型  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一java内存结构  He

知识大全 深入Java核心 Java内存分配原理精讲

深入Java核心Java内存分配原理精讲  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java

知识大全 Java中的堆栈内存浅析

Java中的堆栈内存浅析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java把内存划分成两种

知识大全 JAVA调试技术

JAVA调试技术  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这份材料介绍JAVA的调试技术范

知识大全 Java优化编程--内存管理

Java优化编程--内存管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  众所周知java的J