generate pretty graphs from heap profiles https://code.mathr.co.uk/hp2pretty

LTS Haskell 9.5:
Stackage Nightly 2017-09-20:
Latest on Hackage:
BSD3 licensed by Claude Heiland-Allen
Maintained by claude@mathr.co.uk

Module documentation for

There are no documented modules for this package.


hp2ps is a tool to generate PostScript graphs of Heap Profiles.
hp2pretty is a rewrite of hp2ps, implemented in Haskell, with
the aims of being maintainable, with more flexible output, and
more beautiful output. Currently hp2pretty outputs Scalable
Vector Graphics (SVG) only, though PostScript (PS) is planned.
Not all of hp2ps' options are implemented yet in hp2pretty.


hp2pretty - generate pretty graphs from heap profiles

Usage: hp2pretty [--uniform-scale AXES] [--sort FIELD] [--reverse]
[--trace PERCENT] [--bands COUNT] [--pattern] FILES...
Convert heap profile FILES.hp to pretty graphs FILES.svg

Available options:
--uniform-scale AXES Whether to use a uniform scale for all outputs. One
of: none (default), time, memory, both.
--sort FIELD How to sort the bands. One of: size (default),
stddev, name.
--reverse Reverse the order of bands.
--trace PERCENT Percentage of trace elements to
combine. (default: 1.0)
--bands COUNT Maximum number of bands to draw (0 for
unlimited). (default: 15)
--pattern Use patterns instead of solid colours to fill bands.
FILES... Heap profiles (FILE.hp will be converted to
-h,--help Show this help text



$ wc in.hp
1484749 2969502 37406420 in.hp

$ time hp2pretty <in.hp >out.svg
real 0m38.786s 0m39.423s 0m38.674s
user 0m38.120s 0m38.800s 0m38.110s
sys 0m00.360s 0m00.250s 0m00.400s

$ time hp2ps <in.hp >out.ps
real 0m38.474s 0m38.765s 0m38.017s
user 0m38.350s 0m38.200s 0m37.860s
sys 0m00.090s 0m00.140s 0m00.150s

(hp2pretty compiled with "ghc -O2 --make")

Essentially identical runtime!

Memory usage from 'top':
hp2pretty ~275M
hp2ps ~50M

Tests were run on 64bit GNU/Linux with ghc-6.12.3.


"in.hp" time (seconds) memory (bytes)
(bytes) hp2pretty hp2ps hp2pretty hp2ps
37M 33.345 36.430 64M 25M
1.3M 1.015 0.074 2.2M 1.0M
47k 0.058 0.005 210k 60k

Time is real time averaged over 3 runs as measured by 'bash'.
Memory is peak usage as measured by 'valgrind --tool=massif'.

hp2pretty compiled via cabal-install with 'ghc -O --make'.

Tests were run on 64bit GNU/Linux with ghc-6.12.3.
comments powered byDisqus