Antiope Associates rely on a number of advanced techniques to ensure that the communication systems we design are reliable and free from error. Among these is functional programming, in particular the programming language Haskell.
As our contribution to the community that has developed this powerful tool, we are making available prof2dot, a utility for graphically profiling Haskell programs compiled by the Glasgaw Haskell Compiler (ghc). Prof2dot converts ghc's runtime profiles (generated by running a program with the "+RTS -px -RTS" option) into Graphviz's "dot" format. The Graphviz tools can then render the resulting call graph in a number of formats and the "dot" file can be post-processed to give fine control of the layout.
An example of what prof2dot can do can be seen by clicking on the sample image above. Prof2dot has colorized the program call graph according to the time used by each cost center.
Prof2dot requires the Glasgow Haskell Compiler, version 6.8.1 or later, to build. Version 6.6.x can be used if the Cabal packaging tool is updated to 1.2 or later. The Graphviz tools (available from graphviz.org) are needed to render the images.