profiterole: Restructure GHC profile reports

[ bsd3, development, program ] [ Propose Tags ]

Given a GHC profile output, this tool generates alternative views on the data, which are typically more concise and may reveal new insights.


[Skip to Readme]
Versions 0.1
Change log CHANGES.txt
Dependencies base (>=4.6 && <5), containers, directory, extra, filepath, ghc-prof, hashable, scientific, text [details]
License BSD-3-Clause
Copyright Neil Mitchell 2017
Author Neil Mitchell <ndmitchell@gmail.com>
Maintainer Neil Mitchell <ndmitchell@gmail.com>
Category Development
Home page https://github.com/ndmitchell/profiterole#readme
Bug tracker https://github.com/ndmitchell/profiterole/issues
Source repo head: git clone https://github.com/ndmitchell/profiterole.git
Uploaded by NeilMitchell at Fri Jun 2 21:25:09 UTC 2017
Distributions LTSHaskell:0.1, NixOS:0.1, Stackage:0.1, openSUSE:0.1
Executables profiterole
Downloads 258 total (7 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
Last success reported on 2017-06-02 [all 3 reports]
Hackage Matrix CI

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


Readme for profiterole-0.1

[back to package description]

Profiterole Hackage version Stackage version Linux Build Status Windows Build Status

Script for reading and restructring a GHC profile script.

The Goal

Given profile data, different ways of looking at it reveal different insights. This tool provides one of those insights - in addition to reading the standard profile output and using other tools such as Profiteur.

Profiterole aims to make the profile shorter by combining common subtrees and lifting them to the root - e.g. if you call parseFile from 7 places in the code, instead of having 7 pieces of parseFile profiling, Profiterole will give you one.

As an example compare HLint profile input to HLint Profiterole output.

Usage

To run, first install (cabal update && cabal install profiterole), generate a GHC profile the normal way, then run:

profiterole myprogram.prof

Profiterole will generate myprogram.profiterole.txt and myprogram.profiterole.html - both contain the same information, but the HTML has hyperlinks. There are three columns of numbers:

  • TOT is the total time spent in any item under this code, what GHC calls inherited time.
  • INH is the total time spent in the items that Profiterole did not move out to the top level.
  • IND is the individual time, just like GHC profiles.

For large programs, using +RTS -P (instead of the common -p) will give more accurate results.