为啥 Haskell 要求所有库都启用分析功能以进行分析?
Posted
技术标签:
【中文标题】为啥 Haskell 要求所有库都启用分析功能以进行分析?【英文标题】:Why does Haskell require all libraries to be profiling-enabled for profiling?为什么 Haskell 要求所有库都启用分析功能以进行分析? 【发布时间】:2014-11-30 04:02:47 【问题描述】:Q:Profile Haskell without installing installing profiling libraries for all dependenciesA:你不能。安装就行了,有什么问题?
为什么?
如果我只想分析我的代码,将库调用视为分析的无操作,为什么它不能允许部分分析?如果有很多已安装的依赖项,启用分析可能会很棘手。虽然不太准确,但应该更容易。
【问题讨论】:
我认为您的意思是询问 GHC,而不是 Haskell。您可能想要编辑您的标题(并添加ghc
标签)。
这确实是一种痛苦,似乎已经存在多年但仍未修复
【参考方案1】:
我的理解是,当您要求 GHC 编译代码以进行分析时,代码的二进制接口会发生变化。 (而且它还链接到不同版本的 RTS。)由于同一程序中的所有代码必须具有相同的二进制接口......好吧,这就是原因。
为避免这种情况,GHC 必须要么支持在同一个程序中混合不同的二进制接口,要么找到一种方法来编译具有与非分析代码相同的接口的分析代码。我想这些事情都不是特别简单的事情。
我同意这非常烦人,虽然...
【讨论】:
以上是关于为啥 Haskell 要求所有库都启用分析功能以进行分析?的主要内容,如果未能解决你的问题,请参考以下文章
为啥所有异步图像加载(SDWebImage、AFNetworking)库都使用 UIImageView 而不是 UIImage?
为啥我的haskell程序这么慢? Haskell 编程,人生游戏