Rspec(jruby)内存不足异常

时间:2013-10-24 15:49:12

标签: rspec jruby ojdbc

我不一定在寻找答案,我正在寻找有助于我解决问题根源的诊断工具的建议

我们在rspec中有一个非常大的测试套件,当它完整运行时,内存不足。

当我们收到消息时,它说:“Javalang :: OutofMemoryError \ n permgen space”

对于特定的测试,这不会发生,但它似乎在测试套件运行中大约在同一时间发生(显然内存使用累积而未被释放并最终导致失败)

我们通过ojdbc使用jruby和oracle。

有没有人对如何追查此问题的来源有什么建议? jmap显然不太有用(虽然我们还没有达到调试ojdbc的程度)

1 个答案:

答案 0 :(得分:2)

感谢Josh Silverman和Steven Karger的回答:

提高PermGen max解决了这个问题。似乎将PermGen max加倍到128兆字节可以支持10倍大的测试套件。从我的测试来看,看起来java进程的内存使用开始达到大约690mb(500堆+ 128 perigean + 50mb unknown)与新的PermGen max。您可以通过修改JRUBY_OPTS来增加PermGen内存分配,如上所示。

# in your .bashrc or .bash-profile, or other environment control:
export JRUBY_OPTS="--1.9 -J-XX:MaxPermSize=128m"