- 论坛徽章:
- 95
|
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 |
|