显示编译器在类型推断上花费的时间

时间:2013-11-16 15:20:31

标签: scala sbt

我听说类型推断是一个需要花费时间的编译器阶段,并且在某些情况下添加显式返回类型以加快编译是一个好习惯。

有没有办法显示编译器在类型推断阶段花费多少时间?我最初想到的是一个工具,可以显示推断特定返回类型(方法,变量等)的成本。

1 个答案:

答案 0 :(得分:4)

代理解决方案是将-Ystop-after:<phase> private选项与typer编译器阶段一起使用并计时。如果你这样称呼(来自bash):

time scalac -Ystop-after:typer MyClass.scala

你将得到所有阶段的时间结果,包括typer。您可以尝试使用此选项,Ystop-before:<phases>Yskip:<phases>Xshow:<phases>,但Y选项是私有的,并且往往是实验性的,并且在scalac之间更改/消失版本(我使用2.10.0)。例如,我无法使stop-before:typer工作,从其他阶段中删除时间。您可以列出:

scalac -Y