首页 >Java >java教程 >java怎么检查内存泄漏

java怎么检查内存泄漏

WBOY
WBOY转载
2023-05-07 09:58:071496浏览

内存泄漏场景

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

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

    top –H –p 58527

2、查看服务器内存。

    df -h 查看磁盘情况
    du -h --max-depth=1 文件目录占用资源情况。

3、查看内存、缓存区、使用和闲置。

    free -m        

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

    S1C:年轻代中第二个survivor(幸存区)的容量 (字节)

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

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

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

    EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)

    OC:Old代的容量 (字节)

    OU:Old代目前已使用空间 (字节)

    PC:Perm(持久代)的容量 (字节)

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

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

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

    FGC:从应用程序启动到采样时old代(全gc)gc次数

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

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

4、查看执行程序信息。

    jstack 2829 > 1.log    
 
    grep -A 1'java.lang.Thread.State' jstack.log | wc -l

5、下载堆文件分析代码Dump。

以上是java怎么检查内存泄漏的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:yisu.com。如有侵权,请联系admin@php.cn删除