GCViewer模式分析(GCViewer pattern analysis)

2019-09-28 09:49发布

是否有GCViewer模式的任何教程? 我有哪里GC日志图形成像这样,但不能弄清楚,如果这是一个内存泄漏问题,或者它仅仅只是需要更多内存的问题。 任何人都可以请帮我吗?

从日志,它显示错误“错误 - java.lang.OutOfMemoryError:GC开销超限”谢谢。

Answer 1:

为了弄清楚是否有内存泄漏,具有GC图表是不够的。 基本上有两种策略:

  1. 内存泄漏检测器 :一个很好的工具是用甲骨文JRockit的任务控制 。 它的内存泄漏检测器允许您计算特定类的实例数。 通过你的记忆检测器连接到运行的JVM,您可以监视这个数字如何改变加班。 在那里,你应该看是否有内存泄漏。 示出这些号码的工具的样品,可以发现http://docs.oracle.com/cd/E11035_01/jrockit/intro/wwimages/memleak3.gif 。
  2. 堆转储分析 :一个常用的工具是从日食MAT。 它是一个基于Eclipse的应用程序,用来分析你的JVM的堆转储。 您可以使用从JDK的一部分提供JMAP堆转储任何时候。 或者,你可以等待JVM时发生OOM转储文件。 通过分析堆转储,MAT应该给你一个合理的猜测正好泄漏。 您也可以清楚地看到有多少个对象(应用类或库类)中创建和它们之间的关系。 从这张照片,你的应用程序行为的知识,你应该能够找出哪些应用程序的一部分出现问题。

一般来说,第一种方法是开发人员和管理员更方便,更直观。 第二个需要JVM和堆的更多的知识。 此外,第一个可在生产系统中用作JRockit的任务控制在生产JVM低开销。



文章来源: GCViewer pattern analysis