Visualizing profiling data with profiteur

The header art on the Haskell Tooling page is made using the GHC profiling output from the haskell-fractalThe haskell-fractal code on GitHub. We wrote about using that code to generate artwork here. package, visualized with HTML using the profiteurThe profiteur package on Hackage package.

Jasper Van der Jeugt is a prolific Haskeller and helps coordinate a Haskell hackathon in ZurichZurihac each summer. Perhaps his most well-known package is hakyllThe hakyll page on Hackage has a link to his extensive tutorials for using the library., a static site generator with extensive features and documentation, and we’ve found him to be a helpful and responsive package maintainer.

He gives a justification for writing his profiteur package as part of his tutorial introductionProfiteur: a visualiser for Haskell GHC .prof files to using the package, and this is where we first learned of it.

Working through that tutorial gives you a good idea of what it’s all about, but we decided to profile a program we were already using and see what the results were.

Profiling fractals

First we installed profiteur, which can be done with cabal install or stack install.

Jasper’s tutorial gives different instructions for use than we do here.

We already had compiled the haskell-fractal program without profiling information, so we rebuilt it with the stack flag to enable profiling for all the dependencies. From within the project directory:

$ stack build -- profile

Type Classes offers courses and projects to get you started and make you an expert in FP with Haskell. For $29/month, you get access to the complete archive and all the latest content.