关于增加JVM的堆大小

时间:2012-03-20 13:44:26

标签: java jvm

我使用线程开发了聊天应用程序。但是当我启动我的应用程序时,系统行为非常缓慢,并且有时异常发生堆已满。我想增加Java虚拟机的堆大小。我怎么能这样做?

4 个答案:

答案 0 :(得分:5)

只需增加JVM的堆大小即可。所有Java应用程序,即使是简单的应用程序,都会占用大量内存。看看这个article详细解释如何增加应用程序的可用内存量;基本上,当你调用java命令时,你需要将一些额外的参数传递给JVM,如下所示:

java -Xms64m -Xmx256m HelloWorld

在上面的命令中,我说HelloWorld程序的初始堆大小应该是64MB,最大值是256MB。尝试使用这些值并稍微调整它们,直到找到适合您的应用程序的值组合。

答案 1 :(得分:3)

您可以增加堆大小,但更大的问题是“为什么我会得到该异常?”如果您的应用程序没有正确清理,那么增加堆大小只会延迟不可避免的情况。

您需要使用Visual VM检测应用程序,看看发生了什么。这将为您提供更多的前进路径,而不仅仅是增加堆大小。

答案 2 :(得分:2)

启动应用时,在命令中添加-Xmx100m。这将为您提供100 MB的堆(您可以更改数量)。

一个聊天应用程序需要的不仅仅是标准堆大小......听起来很奇怪......

答案 3 :(得分:1)

  

块引用

大型服务器应用程序经常会遇到两个问题 默认值。一个是慢启动,因为初始堆很小 必须在许多主要收藏品上调整大小。一个更紧迫的问题 是大多数人的默认最大堆大小是不合理的 服务器应用程序。

  

块引用

您可以使用这些参数通过命令提示符启动程序 java -Xms64m -Xmx256m chat_program。 这里Xms64m = 64mb初始堆大小 和Xmx256m = 256mb最大堆大小