我在java堆内存方面有一个问题。我用java开发了一个客户机服务器应用程序,作为windows服务运行,它需要超过512MB的内存。我有2GB的RAM,但当我运行我的应用程序时,它抛出一个异常
内存不足错误:Java堆空间
但是我已经在java控制面板中设置了堆大小(最大值为512MB),我仍然得到相同的错误。我不能通过命令行设置堆大小,因为我的应用程序是作为windows服务运行的,所以如何增加默认的堆大小呢?
请注意,在Java.lang.OutOfMemoryError:Java堆空间之后增加Java堆大小通常只是一个短期解决方案。
这意味着即使您将默认的Java堆大小从512 MB增加到2048 MB,如果您正在处理内存泄漏,您仍然可能在某个时刻得到这个错误。首先要问的主要问题是为什么你会得到这个OOM错误?它真的是Xmx值太低还是只是另一个问题的征兆?
在开发Java应用程序时,尽早了解其静态和动态内存占用需求总是至关重要的,这将有助于防止以后出现复杂的OOM问题。通过正确的应用程序分析和负载测试,可以实现JVM、Xms和Xmx设置的适当大小。
问题内容: 我对Java堆内存有一个问题。我用Java开发了一个客户端服务器应用程序,该应用程序作为Windows服务运行,需要超过512MB的内存。我有2GB的RAM,但是运行应用程序时会引发异常 内存不足错误:java堆空间 但是我已经在Java控制面板中设置了堆大小(最大512MB),但仍然收到相同的错误。我无法通过命令行设置堆大小,因为我的应用程序作为Windows服务运行,因此如何增加默
问题内容: 有没有办法我可以在自己的计算机上为jvm设置默认堆大小?我想将其设置为1g,因为我一直在运行自定义程序,这些程序始终会达到默认jvm大小的超额点。 我只是不想记住每次我从命令行运行Java应用程序时都要键入-XmX1g … 必须有一种管理方式来做到这一点吗? 问题答案: 显然,它也可以在Linux上运行:
问题内容: 我问了这个问题,以了解如何增加JVM中的运行时调用堆栈大小。我有一个答案,而且我还有很多有用的答案和注释,这些注释和注释与Java如何处理需要大型运行时堆栈的情况有关。我在回答摘要中扩展了我的问题。 最初,我想增加JVM堆栈的大小,以便程序运行时无需安装。 相应的配置设置是具有足够大值的命令行标志。对于TT上面的程序,它可以与OpenJDK的JVM一起工作: 答案之一也指出这些-X…标
问题内容: 嗨,我想知道我可以根据我的应用程序增加JVM的内存。如果是,如何增加JVM的内存?我怎么知道JVM的大小? 问题答案: 启动JVM时,可以调整两个参数以适合你的内存需求: 指定初始Java堆大小,并 最大Java堆大小。 http://www.rgagnon.com/javadetails/java-0131.html
问题内容: 我收到以下错误: 问题答案: 以下是一些可用来更改堆大小的选项。
问题内容: 如何增加Java中的堆大小? 问题答案: 你可以在32位系统上增加到4GB。如果你使用的是64位系统,则可以更高。如果你选择不正确,无需担心,如果你在32位系统上要求5g,则Java会抱怨值无效并退出。 正如其他人发布的那样,使用cmd-line标志-例如 你可以通过键入java -X来获得完整列表(或者无论如何都接近完整列表)。 使用命令行选项可以增加JVM分配的堆大小。这里有3个选