hp2pretty ========= 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. Usage ===== hp2pretty - generate pretty graphs from heap profiles Usage: hp2pretty [--uniform-scale AXES] [--sort FIELD] [--key KEY] [--title TITLE] [--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. --key KEY Whether to embed the key in the image output. One of: inline (default), FILE.txt. Use - for standard output and ./inline for a file named literally "inline". --title TITLE Whether to embed the title in the image output. One of: inline (default), FILE.txt. Use - for standard output and ./inline for a file named literally "inline". --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 FILE.svg). -h,--help Show this help text Benchmarks ========== hp2pretty-0.1 ------------- $ wc in.hp 1484749 2969502 37406420 in.hp $ time hp2pretty 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 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. hp2pretty-0.2 ------------- "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.