Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java web应用程序的内存消耗(300MB太高?)_Java_Spring_Hibernate_Memory_Velocity - Fatal编程技术网

java web应用程序的内存消耗(300MB太高?)

java web应用程序的内存消耗(300MB太高?),java,spring,hibernate,memory,velocity,Java,Spring,Hibernate,Memory,Velocity,我能为你的记忆问题开动脑筋吗 我的java应用程序并不庞大(比如14000 LOC),它使用了大约300MB的内存。它在Tomcat上运行,有一个MySQL数据库。我正在使用Hibernate、Spring和Velocity 它似乎没有任何泄漏,因为它稳定在300MB,没有进一步增长。(同时,我做了一些分析。)然而,我的团队对它使用的空间量有些担心。这看起来高吗。你有什么办法缩小它的建议吗 任何想法都很感激 JoeLOC的数量并不是Java应用程序将使用多少堆的指标;两者之间没有相关性 300M

我能为你的记忆问题开动脑筋吗

我的java应用程序并不庞大(比如14000 LOC),它使用了大约300MB的内存。它在Tomcat上运行,有一个MySQL数据库。我正在使用Hibernate、Spring和Velocity

它似乎没有任何泄漏,因为它稳定在300MB,没有进一步增长。(同时,我做了一些分析。)然而,我的团队对它使用的空间量有些担心。这看起来高吗。你有什么办法缩小它的建议吗

任何想法都很感激


Joe

LOC的数量并不是Java应用程序将使用多少堆的指标;两者之间没有相关性

300MB对于缓存数据的服务器应用程序来说不是特别大,但是对于不保存任何类型的缓存数据或会话数据的应用程序来说,它有点大(但因为这包括Web服务器本身,所以300MB通常是合理的)。

代码量(LOC)很少对应用程序的内存使用有多大影响,毕竟,占用大部分内存的是存储的变量和对象。对我来说,300兆字节听起来不算多,但这当然取决于您的具体使用场景:

  • 生产服务器有多少内存
  • 有多少用户使用了这么多的内存
  • 每个用户会话的内存使用量增长了多少
  • 您希望有多少用户同时访问生产使用中的应用程序

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

我不能做出任何承诺,但我认为您不必担心。我们使用hibernate通过Glassfish运行了两个web应用程序,每个应用程序在开发中使用了大约800-900MB的内存,通常会有两个相同大小的域运行。

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

您的问题没有包含足够的信息,我们无法得出有用的答案。内存使用与LOC没有直接联系;这取决于你在这些方面做了什么。我们必须看到代码和/或功能的良好描述才能智能地回答。如何缩小它需要对代码进行一些分析。至少在我看来,这个数字并没有高得离谱。我的Web服务器和eclipse(2个java进程)一起运行大约1gig内存。不过,我们的web服务有大量的线路……如果有一个能容纳300MB总内存的Spring+Hibernate应用程序,我会非常激动……)我空转了两倍多,没有负载!认为你做得很好。它们都是已经推出2年以上的生产应用程序