Java 填补J2EE struts应用程序内存漏洞的最佳方法(无需付费:()

Java 填补J2EE struts应用程序内存漏洞的最佳方法(无需付费:(),java,performance,jakarta-ee,memory-leaks,weblogic,Java,Performance,Jakarta Ee,Memory Leaks,Weblogic,我有一个运行在WebLogic10.3上的J2EE struts应用程序,它显然存在严重的内存问题。 我的公司不会购买像Jprobe这样的第三方工具,所以我唯一的选择是使用免费提供的工具。我启用了gc日志,并观察到内存消耗异常高,会触发频繁的gc周期。现在我正在我的机器上配置JAM控制台/JADE以捕获内存快照,以查看应用程序的哪一部分出现问题。有没有其他更好的方法来解决这个问题。有许多小的最佳实践可以提高内存使用率,但对于一个旧的胖遗留应用程序来说,它们似乎太多了 非常感谢您的建议。您可以使用

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

非常感谢您的建议。

您可以使用。VisualVM随最新的JDK 1.6版本一起提供。

只需重新测试即可


我至少可以看出,Web应用程序中最常见的内存效率错误是滥用
HttpSession
作为数据存储的副本,并使用
字节[totalSize]
不用缓冲流将数据从一端传输到另一端。只需仔细检查代码或让更有经验的开发人员检查代码。

当涉及堆转储分析时,VisualVM是一个很好的工具,可用于解决内存泄漏问题。但从功能上看,VisualVM(以前被称为SAP内存分析器之前,它是通过SAP捐赠给Eclipse基金会的)绝对是VisualVM之上的一个步骤。认真地说,我一般不是SAP软件的大粉丝,但是他们用这个工具做的非常好,Eclipse Mat对于我来说是堆堆分析的事实选择。 自从我使用它以来,发现贪婪的内存猪从来没有这么容易(它甚至有一个“泄漏嫌疑犯”检测器,工作得很好)


有关更多详细信息和一种方法,我热烈推荐mega super awesome博客文章。有关Eclipse MAT的特定资源,请查看这篇文章,以获取更高级的提示或“官方”.

谢谢,但无法打开链接,可能是我的防火墙。一定会尝试一下并在此处发布结果您不需要转到链接,只需在您的JDK的/bin目录中查找visualvm可执行文件(我相信从JDK 1.6u7开始提供)我相信这个可执行文件名为
jvisualvm
。是的,类似的问题确实困扰着我的应用程序,但我们没有任何其他开发人员(我是人类的最后希望,呃..我的项目)。我将查看探查器列表,看看是否有符合我要求的。谢谢