GHC's profiling tools: overview

I regularly find myself looking for an overview of the many profiling tools that GHC offers, but I can never find one! So I have started this wiki page as a kind of “contents list” or set of bookmarks. I don’t want to duplicate existing material, merely point to it.

If you are interested in, or knowledeable about, profiling, please do take a look. It’s full of gaps and I’m sure there is loads of good guidance out there that I have not linked. It’s a Wiki, so you can edit it directly.

Thanks!

Simon

22 Likes

This is great. That’s one of the pain points at work: fragmented knowledge of profiling.
I really appreciated Matthew Pickering’s talk on memory profiling in that regard, which I will link on the wiki page

1 Like

There’s also the WIP optimization handbook from the foundation: Haskell Optimization Handbook

2 Likes

ThreadScope - HaskellWiki page was last edited 8 years ago.

Indeed – it’s already linked on the wiki page, as you’ll see

2 Likes

You don’t seem to have added the link yet, so I have done so. Thanks for highlighting it!

What other good resources do people know.

I’d like a good link for the Haskell Program Coverage tool, for example

2 Likes

Sidenote: I tried to edit the wiki, but when submitting my changes, I got:

I don’t know if this is permission issue

Still in the works but @Jappie @tonyday567 and I have been thinking about how DataHaskell can build tools to help understand logs (which are effectively just time series data).

Sample code here

We’ll probably do full blogpost after the holiday season and release some artifacts (a prepackaged library that turns an eventlog into a flat dataframe-like structure as well as some cookbooks) but the short version is that you can use the combination of notebooks, dataframes, and charts to create something like @mpickering ‘s eventlog2html. The difference is you get nice properties like the ability to do ad hoc aggregations/filters on the data, ad hoc plots (which we are still working on), or join two event logs and run some SQL-like logic on top of both of them to compare. Plus you can work in Jupyter notebooks to make your investigation shareable.

12 Likes

Wow that is strange.

Really strange. Can you edit the Description of a GHC ticket?

You might need developer permissions on the GHC project?

Indeed, I was logged in, on the page. I can’t see an ‘edit’ button, but the ‘e’ keyboard shortcut works

I cannot edit the description of GHC tickets.

@TeofilC might be right that developer privileges are required.

In any case, if someone is in the same situation as me, you can probably suggest edits in the page comments!