使用sbt.resident.limit保持Scala编译器驻留的实验支持?

使用sbt.resident.limit保持Scala编译器驻留的实验支持?,sbt,Sbt,我刚刚注意到在sbt.BuiltinCommands的代码中,有一个Java命令行设置-sbt.resident.limit(引用): 对保持Scala编译器驻留的实验支持。使可能 将-Dsbt.resident.limit=n传递给sbt,其中n是一个整数 指示要保留的编译器的最大数量 最终用户是否应该知道开关?哪里有用呢?该功能正在成为主流用途,还是过于专业化以至于几乎没有用处?我们已经尝试将Scala编译器实例保留在内存中,以减少执行增量编译所需的时间。我们的调查结果表明,速度的提高并没有

我刚刚注意到在
sbt.BuiltinCommands
的代码中,有一个Java命令行设置-
sbt.resident.limit
(引用):

对保持Scala编译器驻留的实验支持。使可能 将
-Dsbt.resident.limit=n
传递给sbt,其中
n
是一个整数 指示要保留的编译器的最大数量


最终用户是否应该知道开关?哪里有用呢?该功能正在成为主流用途,还是过于专业化以至于几乎没有用处?

我们已经尝试将Scala编译器实例保留在内存中,以减少执行增量编译所需的时间。我们的调查结果表明,速度的提高并没有我们预期的那么大。由于内存泄漏或声音符号表失效等问题,常驻编译的复杂性非常大

我认为在任何可预见的将来,我们都不太可能完成该实验特性,因此我认为我们应该从sbt源代码中删除对常驻编译模式的任何引用

我创建了一个sbt票证来跟踪它:


随便拿吧。我很乐意为您解答有关从常驻编译模式清理sbt代码的任何问题。

感谢Grzegorz提供了非常详细的答案!