packages feed

hs-speedscope-0.2: README.md

# hs-speedscope

`hs-speedscope` is a simple executable for converting an eventlog into a format suitable to load into [speedscope](https://www.speedscope.app/).

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](https://speedscope.app) 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`](https://hackage.haskell.org/package/base-4.12.0.0/docs/Debug-Trace.html#v:traceMarker) events.

* No events before the first marker which matches the prefix given by `--start`
will be included in the result
* No events after the first marker which matches the prefix given by `--end` will
be included in the result.

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

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