Scala 2.10.0编译器何时比2.9.2更快或更慢?

7

我在Scala 2.10.0和2.9.2上做了编译时间的基准测试,发现 2.10.0的编译时间比2.9.2更长

这种情况在哪些情况下会发生?或者Scala 2.10.0编译器出于某些原因通常比2.9.2慢吗?


2
我现在已经使用两个版本编译了多个项目。平均而言,2.10 版本似乎比 2.9.2 版本慢了 5% 到 10%。对于干净的构建,我在 2.9.2 版本中需要 50、65、70 秒左右,而在 2.10 版本中则需要 55、70、72 秒左右。换句话说,速度基本相同(特别是在使用增量构建时),尽管我希望 2.10.1 版本会有一些优化。2.10 版本中唯一更改的主要组件是模式匹配器。否则,可能还有一些新功能的条件语句,如 SIP-18 等。性能调优是 2.11 版本的目标。 - 0__
毫无疑问,如果没有更多信息,很难回答您的问题。您的基准测试是关于什么的?是否至少有一些开源项目,您可以指出它们在不同的Scala版本中展现出不同的编译速度? - Francois G
根据路线图,@0__ 2.11版本将在一年左右发布。我们还没有确认您提到的5-10%速度变慢的观察结果;如果是这样的话,那就很不幸了——只能使用多项目构建。 - virtualeyes
1个回答

0

在初始的sbt启动+clean/compile 2.10上,似乎比2.9.x更快。

然而,在2.10上的后续clean/compile周期中,时间保持不变,不像2.9.x那样缓存起来并显著减少clean/compile周期。

例如,我有一个核心项目设置在2.9.2和2.10上(37个scala,6个java)

2.9.2项目在初始的clean/compile上需要大约50秒;之后最多需要15到20秒。

[warn] 6 warnings found
[success] Total time: 16 s

2.1.0 项目在初始清理/编译时需要约 40 秒钟;之后每次大约也是 40 秒钟。

[warn] 14 warnings found
[success] Total time: 45 s

需要注意的是,2.9.2项目生成了6个警告;而2.10项目则生成了14个警告。

很想在这个帖子中看到其他的结果,我刚开始测试。

不想将整个应用程序转换为2.10版本——当前构建时间为2.9.2的@100秒;如果以上趋势持续下去,2.10版本的构建时间应该会达到200-300+秒,哎呀。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接