hp2pretty is a tool I wrote to graph Haskell heap profiling output,
to help see where your program is using memory.
cabal update && cabal install hp2pretty,
(assuming cabal installed it somewhere in your PATH -
The changes in this release are contributed by David Hewson. Previously,
hp2pretty would read the whole
input.hp file into memory, and go through it
twice (once to collect statistics about what needs to be plotted, and the
second time to do the actual plotting). This worked fine for small to medium
files, but for huge files that don't fit into available free memory this
causes problems (operating system swapping pages out to slow disks, or worse).
Now the trick is to open and read the file twice instead of keeping it in memory, and using the Lazy variant of Text allows the data to be garbage collected as soon as it has been processed each time through the file, greatly reducing peak memory consumption. Altogether it also seems to speed things up for less huge files (I didn't yet figure out exactly why), even though the real aim was to make processing very huge files possible in the first place.
You can get the latest from git here:
git clone https://code.mathr.co.uk/hp2pretty.git
or install from Hackage.