加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – 设置SBT的堆栈大小

发布时间:2020-12-16 08:45:22 所属栏目:安全 来源:网络整理
导读:我正在使用我专门构建的 Scala运行SBT.我构建的 Scala编译器会在运行时执行很多操作,有很多函数调用,可以是递归的. 因此,当我使用我的内置Scala编译器运行SBT时,堆栈会在很长一段时间后溢出.我尝试在启动SBT时设置-J-Xss.但这不起作用. 我之前遇到过SBT堆大
我正在使用我专门构建的 Scala运行SBT.我构建的 Scala编译器会在运行时执行很多操作,有很多函数调用,可以是递归的.

因此,当我使用我的内置Scala编译器运行SBT时,堆栈会在很长一段时间后溢出.我尝试在启动SBT时设置-J-Xss.但这不起作用.

我之前遇到过SBT堆大小的问题.许多帖子说,启动SBT时设置-J-Xmx不会改变JVM堆大小,因为它被默认的SBT内存选项覆盖.
How to set heap size for sbt?

现在,我想知道-J-Xss是否可以被默认的SBT选项覆盖,就像-J-Xmx被覆盖一样.或者我应该尝试将-J-Xss设置得更大?

解决方法

有很多方法可以做到这一点,但这取决于你想要实现的目标.例如,如果您想要更大的堆来运行测试,请查看此处执行的辅助方法.

SBT_OPTS

首先,您可以简单地设置SBT在加载自身时本机查找的环境变量SBT_OPTS,这应该覆盖您要指定的任何设置.

export SBT_OPTS = "-Xmx1G;-Xms256m;...";

自定义启动器

实现相同目的的另一种方法是基本上创建自定义SBT启动脚本.看看示例here.

用于检测

如果要修改测试选项,则需要在ThisBuild = Seq(“ – Xmx1g”,…)中使用javaOptions.为了让它们甚至可以运行,你总是需要在Test:= true中使用fork,这将创建一个用于运行测试的分叉JVM.如果没有这个,指定的选项将不受尊重.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读