gpt4 book ai didi

scala - 为什么 Play Framework 2.5 不遵守 sbt 中的 JVM 内存设置?

转载 作者:行者123 更新时间:2023-12-05 01:45:37 29 4
gpt4 key购买 nike

所以我一直在努力使用 Play inside sbt 来设置内存设置:

javaOptions ++= Seq("-Xmx11G", "-Xms3G")

但是好像不太尊重。

打印时

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)

这是我看到的:

##### Heap utilization statistics [MB] #####
Used Memory:270
Free Memory:657
Total Memory:928
Max Memory:928

我尝试了建议 here通过设置 _JAVA_OPTIONS,但问题是,它给了我以下错误:

No java installations was detected.
Please go to http://www.java.com/getjava/ and download

有什么想法吗?

最佳答案

(假设 fork 设置为 true)如果您在生产模式下使用 Play 应用程序启动脚本,recommended way是将它们作为命令行参数传递给脚本。否则将使用默认的 JVM 设置。在这里,您正在使用 sbt runactivator run 在开发模式下工作,因此您需要有效地执行相同的操作。

解决方案一:

您可以在命令行上传递参数:

$ sbt run -J-Xms3G -J-Xmx11G

解决方案 2:

sbt 0.13.6 开始,您可以在项目根目录中添加.sbtopts 文件来设置JVM 标志。这可能是一种更好的方式,因为它使您的项目独立。

这是一个示例 .sbtopts:

-J-Xms3G
-J-Xmx11G

这是 $ sbt run(或 activator run)的输出:

##### Heap utilization statistics [MB] #####
Used Memory: 364
Free Memory: 4062
Total Memory: 4426
Max Memory: 10012

您可以阅读有关选项和用法的更多信息 here .

注意:如果这是一个 SBT 项目而不是 Play,build.sbt 中定义的 javaOptions 将直接应用。

关于scala - 为什么 Play Framework 2.5 不遵守 sbt 中的 JVM 内存设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41116318/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com