我有一个使用ghcjs的小项目,目前最佳情况下增量重新编译时间为8秒,对于637行源代码(由find -L . -name '*.hs' | xargs wc -l | grep total
计算)。
最糟糕的罪犯是最后的Linking client/Main.jsexe
步骤,需要3.8秒才能在每次增量构建中发生。
第二个最糟糕的罪犯是Linking Template Haskell
步骤,大约需要2秒钟。这也发生在每次增量重建时,它来自于几个foreign import javascript
声明。即使我将这些声明移动到一个我再也不会触及的单独模块/文件中,通过触摸代码库中的任何文件进行增量构建会导致此链接步骤发生。
最后几秒钟来自实际编译我的源文件。这也很好,但这不是一个问题。
如何实现更严格的编译/反馈循环?