Bum*_*Gee 79 memory-management scala sbt scalatra-sbt apache-spark
我注意到我的scala编译器有一种奇怪的行为.它在编译类时偶尔会抛出OutOfMemoryError.这是错误消息:
[info] Compiling 1 Scala source to /Users/gruetter/Workspaces/scala/helloscala/target/scala-2.9.0/test-classes...
java.lang.OutOfMemoryError: PermGen space
Error during sbt execution: java.lang.OutOfMemoryError: PermGen space
Run Code Online (Sandbox Code Playgroud)
它只会偶尔发生一次,并且通常不会在随后的编译运行中抛出错误.我使用Scala 2.9.0并通过SBT编译.
有没有人知道造成这个错误的原因是什么?提前感谢您的见解.
mic*_*liu 99
我使用HomeBrew在OS X上安装sbt.它支持一个SBT_OPTS
可以放在~/.sbtconfig
文件中的参数export SBT_OPTS=-XX:MaxPermSize=256M
.
Ale*_*nov 46
原因OutOfMemoryError: PermGen space
是它没有足够的永久生成空间 :)如果您使用的是Oracle JVM,则需要-XX:MaxPermSize=256M
在sbt
脚本中添加(或其他一些空间)参数.对于其他JVM,请查看其文档.
Tva*_*roh 36
我以为你使用的是 0.13.6或更高的sbt.使用以下内容.sbtopts
在sbt项目的根目录中创建文件:
-J-Xmx4G
-J-XX:MaxMetaspaceSize=1G
-J-XX:MaxPermSize=1G
-J-XX:+CMSClassUnloadingEnabled
Run Code Online (Sandbox Code Playgroud)
MaxMetaspaceSize
适用于Java 8,而MaxPermSize
适用于Java 7.它们对于防止与permgen或元空间耗尽相关的内存不足错误至关重要.当然,请考虑调整标志值或添加所需的任何其他标志.
更多细节和替代方法可以在这篇博文中找到.
我有这个问题,用它玩了10分钟看着试图改变内存大小的网站.
结果我解决了,
user-profile$ sbt
Run Code Online (Sandbox Code Playgroud)
然后,
sbt-project-name 0.1> clean
Run Code Online (Sandbox Code Playgroud)
这为我解决了这个问题.
归档时间: |
|
查看次数: |
21407 次 |
最近记录: |