分析 Haskell 代码但不包括库分析信息
Posted
技术标签:
【中文标题】分析 Haskell 代码但不包括库分析信息【英文标题】:Profiling Haskell code but excluding library profiling information 【发布时间】:2014-09-20 10:53:11 【问题描述】:众所周知,在分析 Haskell 应用程序时,所有依赖项都已安装了分析信息。这很好,但是在 .cabal
文件中包含 -auto-all
的 Haskell 包会出现问题。这意味着我将始终看到他们的分析信息,即使这与我无关。
请允许我举一个有问题的例子。我正在构建一个小游戏引擎,在我的游戏循环加载纹理之前我做了很多工作,比如JuicyPixels
。这不是分析有趣的代码 - 我对分析游戏循环本身感兴趣。然而,因为JuicyPixels
使用-auto-all
构建了自己,似乎没有办法从分析中排除这些信息。结果,我最终得到了数百个纯粹是噪音的分析行。
是否可以删除所有JuicyPixel
s 调试信息(或任何库,在一般情况下)?
【问题讨论】:
我会修补 JuicyPixels 并向维护者投诉。在cabal文件中无条件启用-auto-all
是不负责任的做法。
来自 JuicyPixels 的阴谋集团文件:Ghc-options: -O3 -Wall
和 Ghc-prof-options: -rtsopts -Wall -prof -auto-all
@RomanCheplyaka - 是的,确实有这种感觉。我是否应该开始一个更公开的对话,“图书馆的ghc-prof-options
被认为是有害的”? :)
@ocharles 是的,那很好。我想很多人都没有意识到这个问题。请务必提及,不需要的成本中心不仅会污染配置文件,还会因运行时成本不为零而扭曲它们。
@ocharles 我的评论是对 Roman 的“部分”回答。
【参考方案1】:
cmets 认为这是 JuicyPixels 的 cabal
文件的问题(如果此问题在其他库中继续发生,那么这也是他们的错)。我开始讨论 Haskell 咖啡馆 (http://haskell.1045720.n5.nabble.com/ghc-prof-options-and-libraries-on-Hackage-td5756706.html),并将尝试跟进。
【讨论】:
以上是关于分析 Haskell 代码但不包括库分析信息的主要内容,如果未能解决你的问题,请参考以下文章
在 Ubuntu 14.04.5 中使用 cabal 时,如何在 Haskell 中安装分析库?