我听说类型推断是一个需要花费时间的编译器阶段,并且在某些情况下添加显式返回类型以加快编译是一个好习惯。
有没有办法显示编译器在类型推断阶段花费多少时间?我最初想到的是一个工具,可以显示推断特定返回类型(方法,变量等)的成本。
答案 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