我目前正在使用 Stack 构建一个项目,总共大约 80 个模块和 13,000 行代码。目前,编译我的类型文件需要大约 3 分钟,这是 Not Acceptable ——它阻止我通过堆栈 ghci 快速测试我的代码。它还显着减慢了许多事情的速度:例如,与同行结对编程或咨询专家。
我希望能够弄清楚为什么编译需要这么长时间,以及我可以做些什么来加快它。有什么方法可以分析编译时间吗?
此外,我如何判断是堆栈还是 ghc 慢?
我知道设置 -O0,尽管这似乎对编译时间没有帮助。我也知道 TemplateHaskell 和 Typeclass Resolution 可能需要一段时间——有什么办法可以更好地解决这些问题需要多长时间?
注意:我看过Speed up compilation in GHC ,但那是从 2013 年开始的,hdevtools 目前不适用于我的设置。
最佳答案
如果这个问题仍然相关,你可以试试这个:
stack ghci --fast --no-build --ghc-options="-fbyte-code"
IIRC 使用它让我获得了最快的结果
stack ghci
.如果这还不够,您可以查看
--ghc-options="-dshow-passes"
的方向。 .我本人目前也在朝着这个方向努力,以尝试加快构建/ghci-reload。
关于Haskell:调试堆栈项目的长编译时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35375143/