gpt4 book ai didi

scala - 为什么 Scala 程序的编译速度很慢?

转载 作者:行者123 更新时间:2023-12-04 01:17:23 26 4
gpt4 key购买 nike

过去两个月我一直在使用 Scala。我也在为一个小应用程序使用 Play 框架。我观察到即使程序打印“Hello World”,编译也很慢。为什么这么慢?有什么减少时间的技巧吗?

最佳答案

在您的情况下,编译速度有多快?

scalac 的速度受两个因素的限制:

  • 这是一个在 JVM 上运行的相当大的程序。所以启动时间不是很好,因为必须 (1) 启动 JVM (2) 将 scalac 加载到其中 (3) JIT 编译大部分以提高速度。 2-4 秒的启动时间是典型的,并且 scalac 的前几次运行并不是非常快。如果您的设置是正确的,这将通过 scalac 在正在运行的 JVM 中保持常驻和“温暖”来缓解。 sbt 和所有 IDE 一样。我建议使用这些选项之一,否则,如果您必须从命令行编译,请使用“fsc”,这也使编译器驻留。 (举个例子:人们通常不会提示 REPL 的速度,但 REPL 使用与其他人相同的 scalac。区别只是编译器保持驻留)。
  • 即使是完全预热的 scalac 也必须与有时需要复杂类型推断的程序抗衡。因此,对于具有非常简单的类型系统(例如 Go)的语言,它的速度不如编译器快。我在我 3 岁的 Macbook Pro 上看到编译速度为 500-800 行/秒。这没有打破世界纪录,但对于增量编译(IDE 和 sbt 现在所做的)来说已经足够了。我当前的项目大约有 50K 行代码,但我基本上从不等待我的 IDE(Eclipse 的 Scala IDE)中的编译器,因为增量编译足够快。有些人看到编译速度低于这个速度。这通常是因为它们使用编译成本非常高的构造(通常从库中导入),例如复杂的隐式参数层次结构。
  • 关于scala - 为什么 Scala 程序的编译速度很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30005124/

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