java.lang.OutOfMemoryError: Java heap space

2022-09-03 03:39:37

在使用Jruby时,我收到此消息。

Complete Java stackTrace
java.lang.OutOfMemoryError: Java heap space

如何解决?


答案 1

TLDR:jruby -J-Xmx1024m script_you_want_to_run.rb

正如其他人所提到的,您的程序正在尝试分配的内存超过允许JVM分配的最大大小。

另外,正如其他人所提到的,您可以通过命令行使用参数 -Xmx1024m(作为示例)来配置 Java 以允许更多的内存分配。

-Xmx 是最大内存的参数,1024m 是内存大小(兆字节的最后一个 m)。我认为JRuby启动JVM时最大内存已经设置为512m,所以你可能想要更高。

要使用 jruby 将参数从命令行发送到 JVM,您需要在参数前面添加 -J,因此您的命令行将如下所示:

jruby -J-Xmx1024m script_you_want_to_run.rb

我也同意内存泄漏的观点:如果你并没有真正处理大量的对象,期望你可能会看到这个错误,那么你可能需要研究你的程序有意外副作用的可能性。


答案 2

设置是最适合我的解决方案。Koray的回答中提到了这一点。JRUBY_OPTS

set JRUBY_OPTS=-J-Xmx2g

推荐