Jruby Rails:Java :: JavaLang :: OutOfMemoryError:编译资产时出现Java堆空间错误
问题描述:
我在jruby和rails上。我正在尝试预编译我的资产,但它给了我下面的错误。Jruby Rails:Java :: JavaLang :: OutOfMemoryError:编译资产时出现Java堆空间错误
rake aborted!
Java::JavaLang::OutOfMemoryError: Java heap space
org.mozilla.javascript.ScriptableObject.createSlot(org/mozilla/javascript/ScriptableObject.java:2913)
org.mozilla.javascript.ScriptableObject.getSlot(org/mozilla/javascript/ScriptableObject.java:2841)
org.mozilla.javascript.ScriptableObject.putImpl(org/mozilla/javascript/ScriptableObject.java:2725)
org.mozilla.javascript.ScriptableObject.put(org/mozilla/javascript/ScriptableObject.java:515)
org.mozilla.javascript.IdScriptableObject.put(org/mozilla/javascript/IdScriptableObject.java:386)
org.mozilla.javascript.ScriptableObject.putProperty(org/mozilla/javascript/ScriptableObject.java:2432)
org.mozilla.javascript.ScriptRuntime.setObjectProp(org/mozilla/javascript/ScriptRuntime.java:1665)
org.mozilla.javascript.ScriptRuntime.setObjectProp(org/mozilla/javascript/ScriptRuntime.java:1659)
org.mozilla.javascript.Interpreter.interpretLoop(org/mozilla/javascript/Interpreter.java:1250)
org.mozilla.javascript.Interpreter.interpret(org/mozilla/javascript/Interpreter.java:815)
org.mozilla.javascript.InterpretedFunction.call(org/mozilla/javascript/InterpretedFunction.java:109)
org.mozilla.javascript.ContextFactory.doTopCall(org/mozilla/javascript/ContextFactory.java:393)
org.mozilla.javascript.ScriptRuntime.doTopCall(org/mozilla/javascript/ScriptRuntime.java:3280)
org.mozilla.javascript.InterpretedFunction.call(org/mozilla/javascript/InterpretedFunction.java:107)
RUBY.call(C:/jruby-1.7.16/lib/ruby/gems/shared/gems/therubyrhino-2.0.4/lib/rhino/rhino_ext.rb:193)
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
我已经尝试了下面的命令,我发现在stakoveflow搜索这个错误,但仍然不工作。
rake assets:precompile RAILS_ENV=production EXECJS_RUNTIME='Node' JRUBY_OPTS="-J-d32 -X-C"
我认为这个问题是正确的,因为plotly-latest.min.js文件。这个文件的大小是1724KB。每当我从application.js中删除这个文件,我的资源预编译工作就会正常进行。
仅供参考我的jruby版本1.7.16和rails版本是4.2.0 如何克服这个问题?
答
只给它更多的JVM堆空间用于预编译任务(jruby -J-Xmx1g ...
)