怎么在java检查内存是否泄漏

  介绍

这篇文章给大家介绍怎么在java检查内存是否泄漏,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

java的特点有哪些

java的特点有哪些   1. java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。   2. java具有简单性,面向对象,分布式、安全性,平台独立与可移植性,动态性等特点。   3。使用Java可以编写桌面应用程序,网络应用程序,分布式系统和嵌入式系统应用程序等。

<强> 1,内存泄漏场景

长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄漏,尽管短生命周期对象已经不再需要,但是因为长生命周期持有它的引用而导致不能被回收,这就是Java中内存泄漏的发生场景。

<强> 2,检查泄漏的过程

(1)查看过程中的CPU和内存占用:

<>之前,,,,top  -H  -p  58527年

(2)查看服务器内存。

<>之前,,,,df  -H 查看磁盘情况   ,,,du  -h ——max-depth=1,文件目录占用资源情况。

(3)查看内存,缓存区,使用和闲置。

,,,自由-m ,,,

,,,S0C:年轻代中第一个幸存者(幸存区)的容量(字节)

,,,就是S1C:年轻代中第二个幸存者(幸存区)的容量(字节)

,,,S0U:年轻代中第一个幸存者(幸存区)目前已使用空间(字节)

,,,S1U:年轻代中第二个幸存者(幸存区)目前已使用空间(字节)

,,,EC:年轻代中伊甸园(伊甸园)的容量(字节)

,,,欧盟:年轻代中伊甸园(伊甸园)目前已使用空间(字节)

,,,OC:老代的容量(字节)

,,,或者:老代目前已使用空间(字节)

,,,电脑:烫(持久代)的容量(字节)

,,,PU:烫(持久代)目前已使用空间(字节)

,,,YGC:从应用程序启动到采样时年轻代中gc次数

,,,YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)

,,,第五代计算机:从应用程序启动到采样时老代(全gc) gc次数

,,,FGCT:从应用程序启动到采样时老代(全gc) gc所用时间(s)

,,,GCT:从应用程序启动到采样gc时用的总时间(s)

(4)查看执行程序信息。

<>之前,,,,jstack  2829年,祝辞,1. log ,,,   ,   ,,,grep  -A  1 & # 39; java.lang.Thread.State& # 39;, jstack.log  |, wc  - l

(5)下载堆文件分析代码转储。

关于怎么在java检查内存是否泄漏就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

怎么在java检查内存是否泄漏