7

我目前正在使用 Stack 构建一个项目,总共大约 80 个模块和 13,000 行代码。目前,编译我的类型文件需要大约 3 分钟,这是不可接受的——它阻止我通过堆栈 ghci 快速测试我的代码。它还显着减慢了许多事情的速度:例如,与同行结对编程或咨询专家。

我希望能够弄清楚为什么编译需要这么长时间,以及我能做些什么来加快它。有什么方法可以分析编译时间吗?

此外,我如何判断是堆栈还是 ghc 慢?

我知道设置 -O0,尽管这似乎对编译时间没有帮助。我也知道 TemplateHaskell 和 Typeclass Resolution 可能需要一段时间——有什么办法可以更好地解决这些问题需要多长时间?

注意:我在 GHC 中看到了 Speed up compilation,但那是从 2013 年开始的,hdevtools 目前在我的设置中不起作用。

4

1 回答 1

2

如果这个问题仍然相关,你可以试试这个:

stack ghci --fast --no-build --ghc-options="-fbyte-code"

IIRC 使用它让我获得了最快的结果stack ghci

如果这还不够帮助,您可以查看--ghc-options="-dshow-passes". 我本人目前也在朝着这个方向努力,以尝试加快构建/ghci-reload。

于 2017-11-29T04:28:20.557 回答