【问题标题】:Spring + Hibernate application not releasing memorySpring + Hibernate 应用程序不释放内存
【发布时间】:2012-07-27 04:57:08
【问题描述】:

我们已经创建了一个 Spring Web 应用程序。使用:

  • 春季 3.1.0
  • 休眠 3.5.4 最终版
  • tomcat 6.24

应用程序相当繁重,每个用户请求我们发送大约 1000 个联系人。 我们用 9 个并发用户重复请求测试我们的应用程序,并使用可视化 vm 进行分析,结果如下:

查看结果,高峰是重复请求,低点是所有请求都停止时。最初的~200MB 内存似乎根本没有释放。春天真的这么重还是我有潜在的记忆问题?此网络应用的发布版本可能会处理更多用户。

我在 tomcat 7 上也有类似的测试结果。

【问题讨论】:

  • 你有多少个cpu核心?以及关于内存的硬件和 tomcat 配置是什么
  • 我在 iMac core i7 上进行测试,4 核,16GB 内存,tomcat 配置为 -Xms512M -Xmx1024M,虽然我们要使用的生产服务器内存较少,但设置与如果需要,可以使用 2GB。
  • 只是出于好奇,那是什么 UI?
  • @danielbeard 你找到答案了吗?我在使用 Hibernate 和 Glassfish 时遇到了类似的问题。
  • @dacracot 早已不再从事 Spring 的工作,所以很遗憾没有给你答案。

标签: java spring hibernate tomcat memory


【解决方案1】:

这不是任何内存问题,GC 足够聪明,可以在您的应用程序中没有引用后释放对象,确保没有全局引用可以用作任何方法的本地引用,并根据您的图表正在释放对象,permgen 可能需要 200 mb,所以您不必担心。

【讨论】:

    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2013-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多