<div dir="ltr"><div>Hi Celeste,</div><div><br></div><div>It looks like by default only cost centers that account for at least 1% of either allocations or time are shown. But all cost centers are shown when the -pa flag is passed.</div><div><br></div><div>See: <a href="https://downloads.haskell.org/ghc/latest/docs/users_guide/profiling.html?highlight=cost%20centre#rts-flag--pa">https://downloads.haskell.org/ghc/latest/docs/users_guide/profiling.html?highlight=cost%20centre#rts-flag--pa</a></div><div>and <a href="https://gitlab.haskell.org/ghc/ghc/-/blob/cf47b96f8b8100d9f9ad1b8121cbfb65fd7eaf2a/rts/ProfilerReport.c#L124">https://gitlab.haskell.org/ghc/ghc/-/blob/cf47b96f8b8100d9f9ad1b8121cbfb65fd7eaf2a/rts/ProfilerReport.c#L124</a></div><div><br></div><div>If you are processing these reports, it might be worth checking out the eventlog interface via the ghc-events library (if you haven't already).<br></div><div><br></div><div>Cheers,</div><div>Teo<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jul 30, 2024 at 3:58 PM Celeste Hollenbeck <<a href="mailto:celeste.hollenbeck@gmail.com">celeste.hollenbeck@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi GHC Team,<br><br>I have a question for a research project. I'm looking at GHC's profiler, and the documentation says a profiling report displays "a break-down by cost centre of the most costly functions in the program". Here's an example of the report that I'm talking about:<br><br><br><font face="monospace">MAIN        MAIN                    102           0    0.0    0.0   100.0  100.0<br> CAF        GHC.IO.Handle.FD        128           0    0.0    0.0     0.0    0.0<br> CAF        GHC.IO.Encoding.Iconv   120           0    0.0    0.0     0.0    0.0<br> CAF        GHC.Conc.Signal         110           0    0.0    0.0     0.0    0.0<br> CAF        Main                    108           0    0.0    0.0   100.0  100.0<br>  main      Main                    204           1    0.0    0.0   100.0  100.0<br>   fib      Main                    205     2692537  100.0  100.0   100.0  100.0</font><br><br>This example is under Section 8.1 of the GHC User's Guide <div><a href="https://downloads.haskell.org/ghc/latest/docs/users_guide/profiling.html#:~:text=GHC's%20profiling%20system%20assigns%20costs,to%20the%20enclosing%20cost%20centre." target="_blank">https://downloads.haskell.org/ghc/latest/docs/users_guide/profiling.html#:~:text=GHC's%20profiling%20system%20assigns%20costs,to%20the%20enclosing%20cost%20centre.</a><br><br>It looks like the numbers often add up to less than 100% for the %time, but I don't see any documentation on a threshold for what makes a cost centre "costly"—so I assume that "costly" means that it takes up any time whatsoever, and any cost centres that take up any time at all are included in the report? So perhaps the numbers under %time don't add up to 100% all the time because of rounding error or perhaps garbage collection? Or something else that is not profiled?</div><div><br>Is that correct?<br><br>Thanks,<br><br>Celeste</div></div>
_______________________________________________<br>
ghc-devs mailing list<br>
<a href="mailto:ghc-devs@haskell.org" target="_blank">ghc-devs@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs</a><br>
</blockquote></div>