java - J2EE struts应用程序中插入内存漏洞的最佳方法(无需付费:( )

标签 java performance jakarta-ee memory-leaks weblogic

我有一个在 Weblogic 10.3 上运行的 J2EE struts 应用程序,该应用程序存在明显严重的内存问题。 我的公司不会购买像 Jprobe 这样的第三方工具,所以我唯一的选择是使用免费提供的工具。我启用了 gc 日志并观察到内存消耗异常高,从而触发了频繁的 gc 周期。现在,我正在我的计算机上配置 JAM 控制台/JADE 以捕获内存快照,以查看应用程序的哪一部分行为异常。有没有其他更好的方法来解决这个问题。有许多小的最佳实践可以提高内存使用率,但对于旧的胖遗留应用程序来说,它们似乎太多了。

非常感谢任何建议。

最佳答案

说到堆转储分析,VisualVM 是一个很好的工具,可以用来解决内存泄漏问题。但就功能而言,Eclipse Memory Analyzer (在 SAP 捐赠给 Eclipse 基金会之前,以前称为 SAP Memory Analyzer)绝对比 VisualVM 高出一步。说实话,我一般来说并不是 SAP 软件的忠实粉丝,但他们使用这个工具所做的事情确实很棒,而且 Eclipse MAT 对我来说是堆转储分析的实际选择。

自从我使用它以来,找到贪婪的内存 pig 从未如此简单(它甚至有一个工作得很好的“泄漏嫌疑人”检测器)。

有关更多详细信息和方法,我热烈推荐 super super 棒的博客文章 How to Fix Memory Leaks in Java 。对于 Eclipse MAT 的特定资源,请看一下这个非常轻的 tutorialEclipse Memory Analyzer, 10 useful tips/articles如需更多高级提示或“官方”Memory Analyzer Webinar .

关于java - J2EE struts应用程序中插入内存漏洞的最佳方法(无需付费:( ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1999086/

相关文章:

java - 包与 java 代码中的类型冲突

java - 如何增量更新Java EE Web应用程序?

jakarta-ee - 如何正确使用 SNAPSHOTS 依赖项与 EAR 和 EJB

android - 他们同时启动两个连续服务是否有任何负面影响?如果是这样,有哪些替代方案?

JavaScript 对象分配问题

MySQL Math —— INTEGER 和 FLOAT 哪个更快?

java - 我得到一个 PersistenceException,我不明白为什么

java - 使用 solrj 和 schema.xml 将实体添加到 solr

java - Hibernate - EntityManager 管理

java - 将 JSR-303 验证错误转换为 Spring 的 BindingResult