hs-speedscope: Convert an eventlog into the speedscope json format

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Convert an eventlog into the speedscope json format. The interactive visualisation displays an approximate trace of the program and summary views akin to .prof files. There is also support for parallel programs, each capability is rendered in its own profile.


[Skip to Readme]

Properties

Versions 0.1.0.0, 0.1.1.0, 0.2, 0.2, 0.2.1
Change log CHANGELOG.md
Dependencies aeson (>=1.4), base (>=4.12.0.0 && <5), extra (>=1.6), ghc-events (>=0.11 && <0.13), hs-speedscope, optparse-applicative (>=0.15), text (>=1.2), vector (>=0.12) [details]
License BSD-3-Clause
Author Matthew Pickering
Maintainer matthewtpickering@gmail.com
Category Development
Source repo head: git clone https://github.com/mpickering/hs-speedscope.git
Uploaded by mpickering at 2020-03-23T11:17:43Z

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Readme for hs-speedscope-0.2

[back to package description]

hs-speedscope

hs-speedscope is a simple executable for converting an eventlog into a format suitable to load into speedscope.

WARNING: Only GHC 8.10 supports generating an eventlog with the correct events for this program to work.

Usage

  1. Create an eventlog which contains time profiling events by running your program with program +RTS -p -l-au.
  2. Run hs-speedscope on the resulting eventlog hs-speedscope program.eventlog.
  3. Load the resulting program.eventlog.json file into speedscope to visualise the profile.

Filtering an eventlog

It is sometimes useful to isolate a specific part of the sample, for example, when I was profiling ghcide, I want to isolate a single hover request.

The --start and --end options can be used to indicate which parts of the eventlog to keep. The filtering options look for messages inserted into the eventlog by traceMarker events.

For example, the following invocation will filter the profile between the START and END markers.

hs-speedscope File.eventlog --start START --end END