首页 > 解决方案 > 如何使用 Sbt 减少我的 scala 项目的内存堆?

问题描述

我正在使用 scala 构建一个 javafx 项目,我注意到内存使用量超过 170mb,而空白 javafx 项目大约为 90mb。我看到JavaFX 吃掉了我的记忆?页面,它说堆中的大部分内存都没有被使用,并解释了一种通过使用此标志来缩小堆的方法:--XX:+UseG1GC。我在 sbt 中使用: javacOptions += "--XX:+UseG1GC" 在 Sbt 中尝试了这个,但内存使用量保持不变。谁能帮我缩小这个堆?

标签: scalajavafxsbt

解决方案


javacOptions如果您的项目中有要编译的 Java 文件,则用于传递 Java 编译器标志。

如果您从 sbt 运行项目,您可以设置JVM_OPTS环境变量或创建.jvmopts文件。它们必须以这种方式配置,因为当 JVM 运行时,它无法设置自己的 JVM 配置。虽然如果你想在 fork 中运行程序并让 sbt 使用不同的配置,你可以使用SBT_OPTS与 fork 分开配置 sbt。

顺便提一句。如果你有一些问题,你总是可以使用sbt-extraswrapper 让事情变得更容易。它使用一些更明智的默认值,如果它丢失则下载 sbt 等。


推荐阅读