我正在为托管在 Weblogic 上的 Web 应用程序使用 YourKit Java 分析器。我目前正在调查内存泄漏。分析器显示了大约 25 万个 char[] 对象,它们占用了 25% 的内存。
我尝试查看我的应用程序以了解这些 char[] 对象的创建位置。令人惊讶的是,我没有找到任何东西。我在这里做错了吗?Weblogic 是否在内部创建这些 Array 对象?
如何在我的应用程序中找到创建这些对象的确切代码?谢谢。
问候, 悉达多
这些字符数组很可能构成了 java.lang.String 的内部部分。你应该让你的分析器给你一个当前在内存中的字符串的概览,以及是否有很多重复。
Roland 对 char[] 可能在字符串中的说法是正确的。我建议使用FindBugs对您的代码进行静态分析。这通常会找到很多好东西。您应该做的其他事情是查看您的会话对象,因为它们更持久。
我不了解YourKit,所以我无法评论实际追踪分配来源,抱歉。