当前位置: 首页 > 知识库问答 >
问题:

无法增加java堆大小

尉迟卓
2023-03-14

我使用的是64位Ubuntu和java VM64位版本。

我有8GB内存。

我无法将java堆大小更改为4096M,甚至2048M也不行。

我试过这些东西:

uname -i

产出:

x86_64

java -version

OpenJDK 64位服务器VM(构建11.0.4+11-post-ubuntu-1ubuntu218.04.3,混合模式,共享)

当我试图更改堆大小时:

java -Xmx:4096m

输出

java -XX:+PrintFlagsFinal -version | grep HeapSize
size_t ErgoHeapSizeLimit                        = 0                                         {product} {default}
size_t HeapSizePerGCThread                      = 43620760                                  {product} {default}
size_t InitialHeapSize                          = 130023424                                 {product} {ergonomic}
size_t LargePageHeapSizeThreshold               = 134217728                                 {product} {default}
size_t MaxHeapSize                              = 2067791872                                {product} {ergonomic}
uintx NonNMethodCodeHeapSize                   = 5835340                                {pd <p>product} {ergonomic}
uintx NonProfiledCodeHeapSize                  = 122911450                              {pd <p>product} {ergonomic}
uintx ProfiledCodeHeapSize                     = 122911450                              {pd <p>product} {ergonomic}
openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3)
OpenJDK 64-Bit Server VM (build 11.0.4+11-post-Ubuntu-1ubuntu218.04.3, mixed mode, sharing)

共有1个答案

巩俊远
2023-03-14

首先检查默认值:

java -XshowSettings:vm

然后需要编辑JVM的设置文件:sudo vim/etc/profile将其添加到文件的开头:

export _JAVA_OPTIONS=-Xmx(size you want in here)m 

按ESC,键入:wq并按Enter

java -XshowSettings:vm
 类似资料:
  • 问题内容: 有没有办法我可以在自己的计算机上为jvm设置默认堆大小?我想将其设置为1g,因为我一直在运行自定义程序,这些程序始终会达到默认jvm大小的超额点。 我只是不想记住每次我从命令行运行Java应用程序时都要键入-XmX1g … 必须有一种管理方式来做到这一点吗? 问题答案: 显然,它也可以在Linux上运行:

  • 问题内容: 我正在使用具有8 GB RAM的Windows 2003服务器(64位)。如何增加堆内存的最大值?我正在使用该标志将堆大小增加到1500 Mb。是否可以将堆内存增加到物理内存(6 GB堆)的75%? 问题答案: 你可以在32位系统上增加到4GB。如果你使用的是64位系统,则可以更高。如果你选择的错误,不用担心,如果你在32位系统上要求5g,则Java会抱怨一个无效的值并退出。 正如其他

  • 问题内容: 我问了这个问题,以了解如何增加JVM中的运行时调用堆栈大小。我有一个答案,而且我还有很多有用的答案和注释,这些注释和注释与Java如何处理需要大型运行时堆栈的情况有关。我在回答摘要中扩展了我的问题。 最初,我想增加JVM堆栈的大小,以便程序运行时无需安装。 相应的配置设置是具有足够大值的命令行标志。对于TT上面的程序,它可以与OpenJDK的JVM一起工作: 答案之一也指出这些-X…标

  • 我在Intellij 2017中开发了一个Android Flex/AIR应用程序。当我尝试在手机上调试它时,我一直收到内存溢出错误。 它向我显示了正在使用的命令: 擦除最多,但显示内存使用512m。我已经进入了编译器设置,并将“构建进程堆大小”选项设置为2056,但这没有帮助。我还添加了值为“-Xms128-Xmx2056m”的JAVA\u OPTS变量 我不知道Intellij是从哪里得到设置

  • 问题内容: 我收到以下错误: 问题答案: 以下是一些可用来更改堆大小的选项。

  • 问题内容: 我正在尝试增加Java在weka中的堆大小,这会不断崩溃。我使用了建议的行: 但出现以下错误: 我不确定这是什么意思。有什么建议? 问题答案: 我发现实际的问题在中的文件中。我用记事本打开了文件,在文件的中间有一行。 我将行更改为read ,保存了文件并重新加载了weka,这解决了我的问题。 我不确定这是否是正确的方法,但这对我有用。