java - 测试重新部署 Web 应用程序时是否存在内存泄漏

标签 java web-applications memory-leaks classloader

在 Tomcat/Glassfish/JBoss/etc 中重新部署应用程序时,很容易通过保留对先前类加载器实例的引用而导致类加载器泄漏。 Jevgeni Kabanov 在这里讨论了这个问题...

http://www.zeroturnaround.com/blog/reloading-objects-classes-classloaders/

有没有人找到一种利用自动化测试(即:通过 junit)来测试重新部署 Web 应用程序不会导致内存泄漏的好方法?我一直在想,使用嵌入式 Jetty 是否可以轻松编写一个 junit 测试,一遍又一遍地重新部署您的应用程序。

最佳答案

我会考虑看一下 Jetty 实例的自定义类加载器,它有一个终结器,告诉你它正在被垃圾收集,然后明确地 - 通过 visualvm 左右 - 告诉 HotSpot 进行垃圾收集,这样终结器就会如果没有泄漏就运行。

关于java - 测试重新部署 Web 应用程序时是否存在内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3719792/

相关文章:

java - 似乎无法让我的 Java 在 VS Code 中工作

java - CentOS 4 上 Java 1.6 的相当神秘的 SocketException

java - 更新旧代码,但现在有前向声明错误

Grails:访问请求参数而不清除它们

c# - 是否有任何现成的模块可用于 Web 应用程序的测试反馈?

c++ - 为什么使用 QtConcurrent 在另一个线程中读取图像似乎会导致内存泄漏?

c++ - 链接 POCO C++ 库会导致大量内存泄漏

java - 无法删除SD卡上的文件

javascript - 从网站复制/粘贴时编辑剪贴板数据

c - 如何正确处理 C 中的 malloc 失败,尤其是当有多个 malloc 时?