我使用线程开发了一款聊天应用程序。但是当我启动应用程序时,系统会变得非常缓慢,并且有时会出现堆栈已满的异常。我想增加Java虚拟机的堆大小。如何做到呢?
java
命令时,您需要传递一些额外的参数给JVM,例如:-Xms256m -Xmx512m
。请按照格式要求返回结果。java -Xms64m -Xmx256m HelloWorld
在上述命令中,我指定HelloWorld
程序的初始堆大小为64MB,最大为256MB。尝试使用这些值并稍微调整它们,直到找到适合您的应用程序的值组合。
您可以增加堆大小,但更大的问题是“为什么会出现异常?”如果应用程序没有正确清理自己,增加堆大小只会延迟不可避免的情况。
您需要使用Visual VM工具来检查应用程序的情况。这将比简单地增加堆大小更有前进的方向。
在启动应用程序时,添加-Xmx100m
命令。这将为您提供100 MB堆(您可以更改数字)。
听起来很奇怪,一个聊天应用程序需要超过标准堆大小...
java -Xmx100m -jar yourjar.jar
这样的命令应该可以实现。 - Mathias Schwarz引用
大型服务器应用程序通常会遇到两个问题。一个是启动缓慢,因为初始堆很小,必须在许多主要收集过程中调整大小。更紧迫的问题是,默认的最大堆大小对于大多数服务器应用程序来说过小了。
引用
您可以通过命令提示符使用以下参数启动程序:java -Xms64m -Xmx256m chat_program。 这里 Xms64m = 64mb 初始堆大小 而 Xmx256m = 256mb 最大堆大小