在我的斯卡拉/ SBT项目,我有一个文件,它需要长达5(!)分钟进行编译。 所有其他的人可以在几秒钟内编译。 这使得开发相当痛苦。
我敢肯定,我滥用了一些Scala的构造,但我不知道如何去调试它。 一个人如何调试长的编译时间,Scala呢?
我使用Scala的2.9.2和SBT 0.11.2
在我的斯卡拉/ SBT项目,我有一个文件,它需要长达5(!)分钟进行编译。 所有其他的人可以在几秒钟内编译。 这使得开发相当痛苦。
我敢肯定,我滥用了一些Scala的构造,但我不知道如何去调试它。 一个人如何调试长的编译时间,Scala呢?
我使用Scala的2.9.2和SBT 0.11.2
你可以试试下面的Scala编译器选项:
-Ystatistics
打印统计编译找到一个阶段是花费时间最多的。 然后,尝试这些:
-Xprint:<phase>
后打印出的程序或“所有” -Yshow-trees
与-print连接使用时,显示详细的树:相 -Ydebug
输出调试消息 -Ypmat-debug
跟踪所有模式匹配的活动。 要直接从控制台SBT启用这些设置,您可以使用set scalacOptions in ThisBuild += "-Ystatistics"
,或一个以上的, set scalacOptions in ThisBuild ++= Seq("-Yshow-trees", "-Ydebug)