On 06/08/2009 08:22, Simon Peyton-Jones wrote:
| In the early to mid '90s we built various heap-profiling tools to | examine the characteristics of heap data in lazy functional programs. | You can find papers describing this work by Googling "heap profiling". | You may be particularly interested in the investigation of "heap lag" | and "heap drag" -- see for example the ICFP'96 paper. Others have | worked on similar tools since, but I'm not sure how extensive heap | profiling facilities are in ghc, the most widely used implementation of | Haskell.
GHC has pretty good heap profiling, including lag/drag/void. I hope they are still working smoothly, although I don't think they have received much love recently.
The lag/drag/void stuff (aka biographical profiling) was a bit broken for a while after pointer tagging was introduced, but should be fine now. Cheers, Simon