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