Dan*_*iel 3 scala sbt playframework
所以我一直在努力使用 Play inside sbt 设置内存设置:
javaOptions ++= Seq("-Xmx11G", "-Xms3G")
Run Code Online (Sandbox Code Playgroud)
但似乎并没有尊重它。
当我打印它时
val mb = 1024*1024
//Getting the runtime reference from system
val runtime = Runtime.getRuntime
println("##### Heap utilization statistics [MB] #####")
//Print used memory
println("Used Memory:" + (runtime.totalMemory() - runtime.freeMemory()) / mb)
//Print free memory
println("Free Memory:" + runtime.freeMemory() / mb)
//Print total available memory
println("Total Memory:" + runtime.totalMemory() / mb)
//Print Maximum available memory
println("Max Memory:" + runtime.maxMemory() / mb)
Run Code Online (Sandbox Code Playgroud)
这是我所看到的:
##### Heap utilization statistics [MB] #####
Used Memory:270
Free Memory:657
Total Memory:928
Max Memory:928
Run Code Online (Sandbox Code Playgroud)
我通过设置尝试了这里的建议_JAVA_OPTIONS,但问题是,它给了我以下错误:
No java installations was detected.
Please go to http://www.java.com/getjava/ and download
Run Code Online (Sandbox Code Playgroud)
有什么想法要做什么吗?
(假设fork设置为true)如果您在生产模式下使用 Play 应用程序启动脚本,建议的方法是将它们作为命令行参数传递给脚本。否则将使用默认的 JVM 设置。sbt run在这里,您正在使用或在开发模式下工作activator run,因此您需要有效地执行相同的操作。
解决方案一:
您可以在命令行上传递参数:
$ sbt run -J-Xms3G -J-Xmx11G
Run Code Online (Sandbox Code Playgroud)
解决方案2:
从 0.13.6开始sbt,您可以.sbtopts在项目根目录中添加文件来设置 JVM 标志。这可能是一种更好的方法,因为它使您的项目变得独立。
这是一个示例.sbtopts:
-J-Xms3G
-J-Xmx11G
Run Code Online (Sandbox Code Playgroud)
$ sbt run这是(或)的输出activator run:
##### Heap utilization statistics [MB] #####
Used Memory: 364
Free Memory: 4062
Total Memory: 4426
Max Memory: 10012
Run Code Online (Sandbox Code Playgroud)
您可以在此处阅读有关选项和用法的更多信息。
注意:如果这是一个 SBT 项目而不是 Play,javaOptions则 中的定义 build.sbt将直接应用。
| 归档时间: |
|
| 查看次数: |
1718 次 |
| 最近记录: |