我目前正在使用Stack构建一个项目,它总共包含大约80个模块和13,000行代码。目前,对于我的类型文件的微小改变,编译大约需要3分钟,这是不可接受的--它阻止我通过堆栈ghci快速测试我的代码。它还显着降低了许多事情的速度:例如,与同行进行结对编程或咨询专家。
我希望能够弄清楚为什么编译花费了这么长的时间,以及我可以做些什么来加快它的速度。有什么方法可以分析编译时间吗?
此外,我如何判断是堆栈还是ghc速度慢?
我知道如何设置-O0,尽管这似乎对编译时间没有帮助。我也知道TemplateHaskell和Typeclass解析可能需要一段时间--有什么方法可以更好地解决这些问题需要多长时间?
注意:我见过Speed up compilation in GHC,但那是2013年的事,hdevtools目前不能在我的设置上工作。
发布于 2017-11-29 12:28:21
如果这个问题仍然相关,你可以尝试这样做:
stack ghci --fast --no-build --ghc-options="-fbyte-code"IIRC使用这个让我在stack ghci上得到了最快的结果。
如果这还不够有帮助,你可以看看--ghc-options="-dshow-passes"的方向。我自己目前也在朝这个方向努力,试图加快构建/ghci reload的速度。
https://stackoverflow.com/questions/35375143
复制相似问题