# 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 ```