Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何增加java内存(算法在ubuntu上运行,但不在mac上运行;相同的机器配置)_Java_Eclipse_Jvm_Jvm Arguments - Fatal编程技术网

如何增加java内存(算法在ubuntu上运行,但不在mac上运行;相同的机器配置)

如何增加java内存(算法在ubuntu上运行,但不在mac上运行;相同的机器配置),java,eclipse,jvm,jvm-arguments,Java,Eclipse,Jvm,Jvm Arguments,最近我收到了一条臭名昭著的错误消息:OutOfMemoryError。我有一台64位Mac电脑,16GB内存,2X2.6GH四核。获取此错误消息对我来说毫无意义,因为我正在运行的算法(导致此错误消息的算法)在另一台机器(ubuntu 16GB Ram)上运行顺利 当我在mac上运行上述代码时,我得到:129957888(当然没有逗号:-) 在ubuntu机器上运行此代码时,我得到:1856700416 有人能告诉我如何增加最大内存以运行我的算法吗?谢谢 我试图在eclipse上设置:默认VM参数

最近我收到了一条臭名昭著的错误消息:
OutOfMemoryError
。我有一台64位Mac电脑,16GB内存,2X2.6GH四核。获取此错误消息对我来说毫无意义,因为我正在运行的算法(导致此错误消息的算法)在另一台机器(ubuntu 16GB Ram)上运行顺利

当我在mac上运行上述代码时,我得到:129957888(当然没有逗号:-)

在ubuntu机器上运行此代码时,我得到:1856700416

有人能告诉我如何增加最大内存以运行我的算法吗?谢谢


我试图在eclipse上设置:默认VM参数
-Xms512m-Xmx4g
,但没有任何更改

-Xmx
-Xms
java
命令更改堆大小的正确参数,但是您需要详细说明。您是在Eclipse中运行测试,还是在Eclipse之外运行测试?仅仅将“-Xmx”参数传递给Eclipse并不能满足您的需要,即使您以正确的方式为Eclipse实际更改了max mem值(这需要在它前面加“-vmargs”)。如果要更改运行算法的分叉JVM的最大mem值,则必须更改运行配置中的参数。

看起来matt b已经涵盖了此参数。我只是想提一下,您可能不想将最大堆大小设置为4GB,除非您的程序真的需要这么多。据我所知,JVM在启动时为自己分配所有内存,然后根据需要使用它来运行代码。让它分配那么多内存可能会导致正在运行的其他应用程序出现性能问题。相反,如果代码需要很长时间才能失败,可以尝试以128MB或更大的增量递增。或者,您可以使用内存分析器查看实际使用的空间大小?我不知道这样的事情是否存在


这在您的设置中可能不是问题,但对于像我这样的凡人来说,轻松分配这么多内存可能会有问题。

我想您是说16GB内存,不是吗?
System.out.println(java.lang.Runtime.getRuntime().maxMemory());