我尝试使用版本为2.7.7的scalac -optimise
。那时我从来没有得到任何性能改进,但编译花费的时间更长。
Scala 2.9.0中的情况是否更好?国旗目前涵盖哪些优化措施?
答案 0 :(得分:15)
奇怪,有一个similar question on the scala-user group:
Rex Kerr当时(5月)回答:
我从未发现生产代码显着加速的情况 使用
-optimise
,至少在使用Sun JVM时。我批准了一些 它可能发生的情况,但它似乎应用类似的优化 JVM已经做好了。也许如果优化深度有限制, 使用-optimise将删除几个层,然后允许JVM获取 多一点。但鉴于如何,我大多不再费心去测试了 很多情况(几十个)我已经尝试过运行时没有改变的地方 可测量。我预计它会对更保守的虚拟机产生影响(例如 JRockit)或不太复杂(例如Dalvik)。
Ismael Juma补充道:
scala发行版实际上是用-optimise编译的,但确实如此 除非将参数传递给scalac,否则它不会打开。
它不够成熟,还是会导致错误,改变语义等?
据我了解,该团队决定保守并启用 它仅用于scala分发作为初始步骤(在Scala中 2.8.0)。也许最好考虑在下一次扩展它 主要发布。
有关Scala2.9中“-optimise
”(以及其他因素)的影响,请参阅此scala-language thread called "Scala2.9 slower?"。
我有点担心。在看到
-optimize
确实在2.9.0上对“理解”进行了优化之后,我对代码进行了基准测试,发现它比2.8.1慢了约2.5倍。
结果留下了......混合的感觉。