3

我已经尽我所能搜索了 ghc 用户手册,但我无法找到一种方法让 ghc 在编译每个模块时打印它的时间。

4

1 回答 1

5

我假设您已经-ddump-timings按阶段和模块找到了以毫秒为单位的转储运行时间?我很确定您最好的选择是解析其输出并按模块求和时间。

查看 GHC 源代码,唯一调用getCPUTime的一段代码在 file compiler/GHC/Utils/Error.hs, functionwithTiming'中,这是由-ddump-timings. 虽然从技术上讲,可能会有一些调用来withTiming'解释模块的总编译时间,但我觉得它不太可能在默认情况下被禁用,并且withTiming在编译器代码库中搜索所有出现的 都不会出现任何结果. 所以,-ddump-timings输出可能是你能做的最好的。

于 2020-12-06T19:06:00.603 回答