繁体   English   中英

Java Web应用程序的内存消耗(300MB太高了吗?)

[英]Memory consumption for java web app (300MB too high?)

我可以就记忆问题打动您的大脑吗?

我的Java应用程序并不大(例如14000 LOC),使用的内存约为300MB。 它在带有MySQL数据库的Tomcat上运行。 我正在使用Hibernate,Spring和Velocity。

它似乎没有任何泄漏,导致它稳定了300MB,并且没有进一步增长。 (此外,我进行了一些分析。)但是,我的团队对它使用的空间量有些担心。 这看起来很高吗? 您对缩小方法有任何建议吗?

任何想法表示赞赏。

LOC的数量并不表示Java应用程序将使用多少堆内存; 彼此之间没有关联。

对于正在缓存数据的服务器应用程序,300MB并不是特别大,但是对于不保存任何类型的缓存或会话数据的应用程序,300MB可能会很大(但是由于其中包括Web服务器本身,所以300MB通常是合理的)。

代码量(LOC)很少会对应用程序的内存使用产生很大影响,毕竟,存储的变量和对象占用了大部分内存。 对我来说,300兆字节听起来并不多,但是当然这取决于您的特定使用情况:

  • 生产服务器有多少内存?
  • 使用的内存量有多少个用户?
  • 每个用户会话的内存使用量会增长多少?
  • 您预计有多少用户在生产环境中同时访问该应用程序?

基于这些,您可以进行一些计算,例如。 您的生产环境是否已准备好处理您期望的用户数量,是否需要更多硬件,是否可能需要将一些数据序列化到磁盘/数据库等?

我无法做出任何承诺,但我认为您不必担心。 我们通过Glassfish运行了几个Web应用程序,同时也使用了休眠模式,每个应用程序都使用约800-900MB的开发资源,并且通常每个大小都有2个域在运行。

如果确实需要减少占用空间,则至少要确保使用的是Velocity 1.6或更高版本。 1.5浪费了很多内存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM