【问题标题】:WebappClassLoader are not Garbage collected in Spring MVCWebappClassLoader 不是 Spring MVC 中收集的垃圾
【发布时间】:2017-01-24 16:58:59
【问题描述】:

我有使用 Spring/Hibernate 开发的 Web 应用程序。

当我使用 JProfiler 进行分析时,它显示大约 9k WebAppClassLoader。我们在运行时执行一些常规表达式,将计数增加到 20K。

我这样做是为了找到泄漏点。

  1. 已部署应用程序
  2. 执行一些测试运行
  3. 重新部署应用程序
  4. 从 JProfiler 触发 GC

WebAppClassLoader 的数量永远不会减少,PermGen 也是如此。当我做 HeapWalk 时,它显示许多类不确定哪个有泄漏。

  1. 我对简单的 Spring MVC 应用程序进行了同样的尝试。也注意到了。是否有任何弹簧属性/配置来解决这个问题。
  2. 当 groovy 表达式运行时,有什么方法可以在运行时停止加载类

【问题讨论】:

  • 你需要将groovy代码的编译结果提取出来。
  • 每次重新部署应用程序时都会创建一个 WebAppClassLoader。您是说使用 Groovy 时会获得更多的 WebAppClassLoaders 吗?此外,JProfiler 有一个可能有用的类加载器探针。

标签: java spring-mvc groovy memory-leaks permgen


【解决方案1】:

使用我的this 博客系列,您应该能够追踪您的 ClassLoader 泄漏。使用我的ClassLoader Leak Prevention library 应该可以解决这个问题。

【讨论】:

    猜你喜欢
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 2011-01-21
    相关资源
    最近更新 更多