我正在使用 JProfiler 来分析我的应用程序。我注意到,当我运行垃圾收集器时,所有标记的记录对象都变为绿色,一段时间后它再次面临创建和销毁对象的一些差异。
顺便说一句,我的应用程序此时仍在运行,我的应用程序是否面临内存泄漏问题或者这很常见。
有一些快照可以帮助您了解情况
以上是我运行垃圾收集器时的快照...
但一段时间后,这些条形变为部分绿色和红色......
我正在使用 JProfiler 来分析我的应用程序。我注意到,当我运行垃圾收集器时,所有标记的记录对象都变为绿色,一段时间后它再次面临创建和销毁对象的一些差异。
顺便说一句,我的应用程序此时仍在运行,我的应用程序是否面临内存泄漏问题或者这很常见。
有一些快照可以帮助您了解情况
以上是我运行垃圾收集器时的快照...
但一段时间后,这些条形变为部分绿色和红色......
通常,你可以说你的内存正在泄漏,如果某个对象占用的大小,比如char[],在 GC 的情况下继续增长。
如果在 GC 之后对于某些类型的对象再次看到“红色”,通常是可以的。我假设您的应用程序正在做一些工作并产生垃圾。所以,这本身不是问题。但是,如果规模继续增长,这可能是一个问题。
一个好的策略是在 GC 之前和之后记录给定对象的分配大小,比如char[],并查看正在收集多少对象。在一段时间内重复这个练习。如果大小没有大幅增长,你应该没问题。
不过,这里重要的一点是,确保负载配置文件(请求数、后台作业等)相同。否则,您的内存分析结果将不会是苹果对苹果的比较。