![](/img/trans.png)
[英]Arrays and Linked List : will arrays be able to allocate 300MB in memory if 512 MB is free but 300 MB is not contiguous
[英]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.