java.lang.OutOfMemoryError: Java heap space
在使用Jruby时,我收到此消息。
Complete Java stackTrace
java.lang.OutOfMemoryError: Java heap space
如何解决?
在使用Jruby时,我收到此消息。
Complete Java stackTrace
java.lang.OutOfMemoryError: Java heap space
如何解决?
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
我也同意内存泄漏的观点:如果你并没有真正处理大量的对象,期望你可能会看到这个错误,那么你可能需要研究你的程序有意外副作用的可能性。
设置是最适合我的解决方案。Koray的回答中提到了这一点。JRUBY_OPTS
set JRUBY_OPTS=-J-Xmx2g