Ana*_*and 4 scala sbt heap-size
我的Build.scala文件内容.
val commonSettings = Seq(
version := "1.0.0",
organization := "com.collective",
scalaVersion := "2.11.4",
scalacOptions ++= List(
"-encoding", "UTF-8",
"-target:jvm-1.7",
"-feature",
"-unchecked",
"-deprecation",
"-Xlint",
"-Xfatal-warnings"
),
resolvers ++= Seq(
"ConJars" at "http://conjars.org/repo"
),
javaOptions in run += "-Xms256M -Xmx2G -XX:MaxPermSize=1024M -XX:+UseConcMarkSweepGC"
)
lazy val segmentFetcher = Project("segments-fetcher", file("."))
.settings(commonSettings: _*)
)
Run Code Online (Sandbox Code Playgroud)
但是,当我执行时
sbt run
Run Code Online (Sandbox Code Playgroud)
并查看jconsole,我在Build.scala中设置的堆大小没有被选中.它只显示-Xmx512M.任何人都可以让我知道我们如何强迫sbt从项目构建文件中选择堆空间?
谢谢!
如果要更改堆大小,则需要告诉sbt fork另一个JVM(顺便说一下,这适用于任何JVM选项).您可以使用该fork设置执行此操作:
fork in run := true
Run Code Online (Sandbox Code Playgroud)
此外,您要确保您的选项已正确分隔(sbt不会执行其他解析):
javaOptions in run ++= Seq(
"-Xms256M", "-Xmx2G", "-XX:MaxPermSize=1024M", "-XX:+UseConcMarkSweepGC")
Run Code Online (Sandbox Code Playgroud)
或者,您可以在sbt runner中设置堆大小.如果您使用普通sbt,则可以直接修改启动器脚本.如果您正在使用sbt-extras,则可以使用-J标志将参数传递给JVM :
sbt -J-Xmx2G # etc.
Run Code Online (Sandbox Code Playgroud)