1

我有一个使用 jruby 1.7 的 rails 3 应用程序,我试图在需要大量内存的情况下在本地开发环境(带有 jdk 7 的 OS X 10.8)上使用 rails 控制台。我按如下方式运行 rails 控制台:

jruby -J-Xms1024m -J-Xmx4096m -J-XX:+UseConcMarkSweepGC -J-XX:+CMSIncrementalMode -S rails c samuel_hml

然后我使用 rails 控制台开始一个长时间运行的进程/

jruby java 进程在引发“OutOfMemoryError: Java heap space”错误后总是失败。但是当我运行控制台并检查活动监视器时,它实际上从未使用超过 700 mb。

4

3 回答 3

3

我找到了解决方案:

RAILS_ENV=samuel_hml jruby -J-Xms1024m -J-Xmx4096m -J-XX:+UseConcMarkSweepGC -J-XX:+CMSIncrementalMode -S rails c

jruby 忽略了我的“-J-Xms1024m -J-Xmx4096m -J-XX:+UseConcMarkSweepGC -J-XX:+CMSIncrementalMode”参数

于 2013-02-20T13:43:44.243 回答
0

你的java周围有某种包装器吗?通常是-Xmx

jruby -Xms1024m -Xmx4096m -XX:+UseConcMarkSweepGC -J-XX:+CMSIncrementalMode -S rails c samuel_hml
于 2013-02-14T14:39:32.107 回答
0

这只是一个猜测,但是当我使用 java 本机缓冲区时遇到了类似的问题。我设置了 2048MB 的最大堆大小并得到了 OutOfMemoryError,即使监视器显示并非所有内存都已使用。真正的问题不在于 java 内存,而在于实际耗尽的本机内存。我用系统监视器检查了它。

当我减少 java 的内存量为本地缓冲区提供更多可用空间时,我的问题得到了解决。

所以也许在这里你有类似的东西?

于 2013-02-14T14:57:03.010 回答