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.
- Create an eventlog which contains time profiling events by running your program with
program +RTS -p -l-au.
hs-speedscopeon the resulting eventlog
- Load the resulting
program.eventlog.jsonfile 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.
--end options can be used to indicate which parts of the
eventlog to keep. The filtering options look for messages inserted into the
- No events before the first marker which matches the prefix given by
--startwill be included in the result
- No events after the first marker which matches the prefix given by
--endwill 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