我想知道为什么有时我的构建速度要慢得多.
所以我决定测量长时间运行时间.
运行纯Scala代码时,很容易这样做:
def myMethod() = {
val initTime = System.currentTimeMillis
...
val elapsedTime = System.currentTimeMillis-initTime
}
Run Code Online (Sandbox Code Playgroud)
但是对于像packageBin
或者compile
,我的源代码无法改变的任务,我不知道如何测量它,因为我无法控制何时someTask.value
运行.
任何提示?
相关问题:
如需更完整的分析,您也可以使用 jrudolph/sbt-optimizer/
sbt-optimizer
是一个实验插件,挂钩到sbt的任务执行引擎,并在任务树运行后提供图形ASCII报告将插件添加到
project/plugins.sbt
:
addSbtPlugin("net.virtual-void" % "sbt-optimizer" % "0.1.2")
Run Code Online (Sandbox Code Playgroud)
并在以下项目中启用它:
enablePlugins(net.virtualvoid.optimizer.SbtOptimizerPlugin)
Run Code Online (Sandbox Code Playgroud)
每个输出行对应于已执行的一个任务.
- 第一次是此任务运行的总时间.
- 以绿色显示的第二个时间是实际执行时间.
- 以红色显示的第三次是任务想要运行但等待全局常春藤锁的时间.
- 以青色显示的最后一次是任务被阻止等待Ivy下载的时间.