如何使用 GHC 的 Profiling 系统

发布于 2022-08-09 05:48:50 字数 1301 浏览 9 评论 1

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寂寞陪衬 2022-08-10 10:31:55

这里有一个使用 GHC Profiling 工具的具体例子:http://lee-duhem.blogspot.com/2008/10/ghc-profiling.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文