java - 如何使用免费工具查找类加载器泄漏?

标签 java spring hibernate tomcat memory-leaks

我正在调查 Tomcat/Spring/Hibernate 应用程序中的内存泄漏,它在几次重新部署后导致可怕的“out of permgen”错误。我已经下载了plumbr的免费版本,这证实了我有一个类加载器泄漏,但不幸的是我买不起499美元来获得详细的报告。是否有免费工具可以执行等效分析并告诉我在哪里寻找它?还是我可以调查的其他导致此类泄漏的常见原因?

到目前为止我已采取的步骤:

  • 确保我的 JDBC 驱动程序在上下文关闭时未注册
  • 手动关闭 MySQL 驱动程序的 AbandonedConnectionCleanupThread(根据 Tomcat Guice/JDBC Memory Leak)

还有什么可能导致泄漏?

最佳答案

您可以使用 evaluation version of JProfiler调查类加载器泄漏。转到类加载器探测器,选择其中一个泄漏的类加载器并将它们显示在堆遍历器中,您可以在其中调查对类加载器加载的类的强引用。

有一个screen cast这将向您展示如何执行此操作。

免责声明:我公司开发 JProfiler。

关于java - 如何使用免费工具查找类加载器泄漏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21966339/

相关文章:

java - 如何最好地将长字符串保存到数据库?

java - Grails - 创建数据库 View

java - ADMA5014E 将 Mavenized Java 应用程序安装到 WebSphere 时出错,并出现 NoModuleFileException : "A file does not exist for module element having uri"

java - 如何打印 Room 数据库中的内部查询?

spring - 定义与 JpaRepository 关联的实体管理器

database - 跨 Spring Web 应用程序的分布式事务

hibernate - 如何在 JPA 2 实体中映射 postgresql "timestamp with time zone"

Java:While循环不退出

java - Spring 中的动态 Apache log4j

java - 使用 hibernate 从数据库中删除项目