JProfiler:垃圾收集器收集对象后。如果堆上有任何Live对象,那么是Memory Leak吗?

时间:2012-02-24 07:49:58

标签: java memory-management memory-leaks profiling jprofiler

我正在使用JProfiler来分析我的应用程序。我注意到当我运行垃圾收集器时,所有标记的记录对象都变为绿色,并且在一段时间后它再次面对创建和销毁的对象中的一些差异。
顺便说一句,我的应用程序此时仍在运行,我的应用程序是否面临内存泄漏问题或这是常见的问题 有一些快照可能有助于您了解情况
enter image description here

以上是我运行垃圾收集器时的快照......

但过了一段时间,这些酒吧变成了绿色和红色的部分......左右。

1 个答案:

答案 0 :(得分:2)

通常情况下,如果某个对象所占的大小(比如 char [] )继续增长,那么你可以说你的记忆正在泄漏。

一般情况下,如果在GC之后您再次看到某些类型的物体出现“红色”。我假设您的应用程序正在做一些工作并生成垃圾。所以,这本身不是问题。但是,如果大小不断增长,可能会成为问题。

一个好的策略是在GC之前和之后记下给定对象的分配大小,例如 char [] ,并查看正在收集的对象数量。在一段时间内重复这个练习。如果尺寸没有大规模增长,你应该没事。

这里的重要点是,确保负载配置文件(请求数,后台作业等)相同。否则,你的内存分析结果不会比较多。