如何使用 GHC 的 Profiling 系统
GHC 的 profiling system 在其用户手册的第六章 Profiling 中介绍,包括 time 和 space(memory)
profiling 两部分。
一、编译
1. 在编译时加 -prof -auto-all
2. 通过 SCC(Set Cost Centre) 手工添加 Cost Centre, 语法为
{-# SCC "name" #-} <expression>
二、获取 time profiling 信息
1. 运行时传入 +RTS -p -RTS, 然后可从生成的以 .prof 为后缀的文件中获取 profiling 信息。
NB. +RTS 表示后续的参数是传给 RTS(Run Time System) 的,-sstderr 可以打印程序运行时的统计
信息,也相当有用。
三、获取 space(memory) profiling 信息
1. 运行时传入 +RTS -hc -RTS, 生成以 .hp 为后缀的文件
2. 运行时传入 +RTS -hr -RTS, 生成以 .hp 为后缀的文件
3. 运行时传入 +RTS -hb -RTS, 生成以 .hp 为后缀的文件
NB. -hc/-hr/-hb 不能同时使用。
4. hp2ps -c foo.hp 将其转化为 foo.ps,然后通过 PostScript 浏览器查看。
四、参考
GHC profiling 工具的详细用法参考其用户手册的第六章 Profiling: http://www.haskell.org/ghc/docs/ ... uide/profiling.html
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这里有一个使用 GHC Profiling 工具的具体例子:http://lee-duhem.blogspot.com/2008/10/ghc-profiling.html