Java 为什么我在Scala中遇到了MemoryError编译错误?

Java 为什么我在Scala中遇到了MemoryError编译错误?,java,scala,lift,Java,Scala,Lift,我正在处理一个Lift项目,并尝试使用scala:cc和scala编译服务器使用jvm参数编译它: -Xmx1024m -Xss20m -XX:PermSize=64M -XX:MaxPermSize=512M -XX:+CMSClassUnloadingEnabled -XX:+CMSClassUnloadingEnabled -Xmx1024m -Xss20m -XX:PermSize=64M -XX:MaxPermSize=512M jvm参数也会出现此错误: -Xmx1024m

我正在处理一个Lift项目,并尝试使用
scala:cc
和scala编译服务器使用jvm参数编译它:

-Xmx1024m  -Xss20m -XX:PermSize=64M -XX:MaxPermSize=512M -XX:+CMSClassUnloadingEnabled -XX:+CMSClassUnloadingEnabled
-Xmx1024m  -Xss20m -XX:PermSize=64M -XX:MaxPermSize=512M 
jvm参数也会出现此错误:

-Xmx1024m  -Xss20m -XX:PermSize=64M -XX:MaxPermSize=512M -XX:+CMSClassUnloadingEnabled -XX:+CMSClassUnloadingEnabled
-Xmx1024m  -Xss20m -XX:PermSize=64M -XX:MaxPermSize=512M 
结果是:

[INFO] Compiling 16 source files to /Users/axaluss/IdeaProjects/trunk/Team_Skynet/target/classes at 1299141180948
[ERROR] java.lang.OutOfMemoryError: Java heap space
[INFO]  at scala.tools.nsc.symtab.Types$class.typeRef(Types.scala:2503)
[INFO]  at scala.tools.nsc.symtab.SymbolTable.typeRef(SymbolTable.scala:13)
[INFO]  at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:2828)
[INFO]  at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3209)
[INFO]  at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3085)
[INFO]  at scala.tools.nsc.symtab.Types$TypeMap.mapOver(Types.scala:2849)
[INFO]  at scala.tools.nsc.symtab.Types$AsSeenFromMap.apply(Types.scala:3209)
[INFO]  at scala.tools.nsc.symtab.Types$Type.asSeenFrom(Types.scala:507)
[INFO]  at scala.tools.nsc.symtab.Types$Type.computeMemberType(Types.scala:531)
[INFO]  at scala.tools.nsc.symtab.Symbols$MethodSymbol.typeAsMemberOf(Symbols.scala:1774)
[INFO]  at scala.tools.nsc.symtab.Types$Type.memberType(Types.scala:522)
[INFO]  at scala.tools.nsc.symtab.Types$Type.findMember(Types.scala:858)
[INFO]  at scala.tools.nsc.symtab.Types$Type.nonPrivateMembers(Types.scala:453)
[INFO]  at scala.tools.nsc.symtab.Types$class.lub0$1(Types.scala:4919)
[INFO]  at scala.tools.nsc.symtab.Types$class.lub0$1(Types.scala:4873)
[INFO]  at scala.tools.nsc.symtab.Types$class.lub(Types.scala:4943)
[INFO]  at scala.tools.nsc.symtab.SymbolTable.lub(SymbolTable.scala:13)
[INFO]  at scala.tools.nsc.symtab.Types$class.lubsym$1(Types.scala:4901)
[INFO]  at scala.tools.nsc.symtab.Types$$anonfun$38.apply(Types.scala:4924)
[INFO]  at scala.tools.nsc.symtab.Types$$anonfun$38.apply(Types.scala:4919)
[INFO]  at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
[INFO]  at scala.collection.immutable.List.foreach(List.scala:45)
[INFO]  at scala.tools.nsc.symtab.Types$class.lub0$1(Types.scala:4919)
[INFO]  at scala.tools.nsc.symtab.Types$class.lub(Types.scala:4943)
[INFO]  at scala.tools.nsc.symtab.SymbolTable.lub(SymbolTable.scala:13)
[INFO]  at scala.tools.nsc.symtab.Types$class.lub(Types.scala:4863)
[INFO]  at scala.tools.nsc.symtab.SymbolTable.lub(SymbolTable.scala:13)
[INFO]  at scala.tools.nsc.symtab.Types$class.solveOne$1(Types.scala:4675)
[INFO]  at scala.tools.nsc.symtab.Types$$anonfun$solve$1.apply(Types.scala:4684)
[INFO]  at scala.tools.nsc.symtab.Types$$anonfun$solve$1.apply(Types.scala:4683)
[INFO]  at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
[INFO]  at scala.collection.immutable.List.foreach(List.scala:45)
[ERROR] error: fatal error (server aborted): Java heap space
[ERROR] one error found
我怎样才能解决这个问题?
我不知道是什么原因导致了这个错误,在Google上找到了除了增加内存以外的任何东西。

你可以从在编译器上设置一些调试开始,尝试找出这个错误的原因:

显然,你必须增加
mx
。Scala的一个问题是内存消耗太大。随着64位CPU和服务器操作系统的广泛采用,以及当前64位桌面操作系统的大量采用,我预计它的重要性不会持续太久。

1GB还不够?!!2 GB的xmx是不够的。它正在编译几分钟,并在内存不足错误中失败。@axaluss好吧,那么可能是其他原因。也许您有复杂的或大的
match
语句?已知它们易受指数级内存复杂性的影响。