zoukankan      html  css  js  c++  java
  • 用什么工具查看内存溢出,结合具体实例讲一下具体的过程

    果通过指令的话,一般先调用jps查看到具体的pid,然后调用jstat来查看运行时的内存,以及GC的频率等,然后通过jstack查看线程是有阻塞、死锁、循环等,最后通过jmap生成的堆快照进行分析内存溢出的地方。

    使用可视化工具的话:

    如果是jConsole,可以通过内存窗口查看堆以及各个部分的内存情况,通过线程窗口可以查看线程是否等待、循环、死锁等情况。

    是 同VisualVM可以定位到具体内存溢出的位置。通过VisualVM可以观察堆、新生代、老年代、永久代的情况,同样通过线程查看是否有阻塞、循环、 死锁等情况。如果有内存溢出情况,首先是在监视窗口点击堆快照,生成快照,然后分析堆快照,通过分析堆转储上的线程,定位到具体执行的线程,然后就可以具 体分析线程里面的实例的数量以及大小,同时可以定位到程序中具体那一行代码,通过代码上下文具体是否写错了。

  • 相关阅读:
    公输盘
    电脑机器刷BIOS
    八皇后问题的实现
    安装msdn出现的问题及解决
    加密推荐书籍
    C++待解
    atan()与atan2()
    Win32/MFC/COM学习推荐书籍
    C++问题
    windows2000 sp4下载
  • 原文地址:https://www.cnblogs.com/wzyxidian/p/5470009.html
Copyright © 2011-2022 走看看