为什么Haskell要求所有库都要进行性能分析以进行性能分析?

Vi.*_*Vi. 5 profiling haskell ghc

:在没有为所有依赖项安装分析库的情况下配置Haskell
A:你不能.只需安装它们,有什么问题?

为什么?

如果我只想分析我的代码,将库调用视为无操作分析,为什么它不能允许部分分析?如果存在大量已安装的依赖项,则启用分析可能会非常棘手.虽然不太准确,但应该更容易.

Mat*_*hid 1

我的理解是,当您要求 GHC 编译代码进行分析时,代码的二进制接口会发生变化。(而且它还与不同版本的 RTS 链接。)由于同一程序中的所有代码必须具有相同的二进制接口......好吧,这就是原因。

为了避免这种情况,GHC 必须支持在同一程序中混合不同的二进制接口,或者找到一种方法来编译具有与非配置代码相同的接口的配置代码。我想这两件事都不是特别微不足道的事情。

我确实同意这烦人,但......