39
stars
44
commits
Haskell
primary language
Mar 20, 2026
updated
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.
program +RTS -p -l-au.hs-speedscope on the resulting eventlog hs-speedscope program.eventlog.program.eventlog.json file into speedscope to visualise the profile.cabal update
cabal install exe:hs-speedscope
This will install to cabal's per-user default location: ~/.cabal/bin/hs-speedscope.
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.
--start
will be included in the result--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
Haskell
62.7%
Nix
37.3%
39
stars
44
commits
Haskell
primary language
Mar 20, 2026
updated
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.
program +RTS -p -l-au.hs-speedscope on the resulting eventlog hs-speedscope program.eventlog.program.eventlog.json file into speedscope to visualise the profile.cabal update
cabal install exe:hs-speedscope
This will install to cabal's per-user default location: ~/.cabal/bin/hs-speedscope.
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.
--start
will be included in the result--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
Haskell
62.7%
Nix
37.3%