<div dir="ltr">I couldn't duplicate this, when system times were high they were usually between 20-40% which seems high but not 80%. I am on Xcode 10.1, macOS 10.13.6 , a 4 core imac with 12 gb RAM and a hard drive not SSDs. I can't go to Mojave as it is an old iMac. I did make -j5 using ghc 8.6.2.<div><br></div><div>The Mac doesn't have truss or strace. It does have dtrace which I believe is the equivalent. </div><div><br></div><div>It might be good to open a ticket for this. As the description of how to reproduce are a bit vague and the steps are manual, it would be ideal if there were modified make file(s) to capture statistics using sample and maybe dtrace or even time. </div><div><br></div><div>Cheers</div><div>George</div><div><br></div><div><br><br><div class="gmail_quote"><div dir="ltr">On Sat, Nov 10, 2018 at 11:10 PM Ben Gamari <<a href="mailto:ben@well-typed.com">ben@well-typed.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Richard Eisenberg <<a href="mailto:rae@cs.brynmawr.edu" target="_blank">rae@cs.brynmawr.edu</a>> writes:<br>
<br>
> OK. Well, I couldn't sample from Activity Monitor, because the<br>
> processes came and went too quickly. But the terminal command `sample`<br>
> takes a *name* as an argument, and so passing ghc-stage1 worked<br>
> nicely. Samples were taken during rts_dist_HC calls.<br>
><br>
Hmmm, it looks to me like all of these are from GHC waiting on various<br>
things (e.g. _pthread_cond_wait, nanosleep, and pthread_join). It's<br>
quite surprising that these operations are chewing through cycles in<br>
kernel mode. I wonder how rapidly we are context switching. Perhaps we<br>
are quickly jumping between kernel and user mode? Perhaps strace (or I<br>
think the OS X equivalent is truss?) will shed some light?<br>
<br>
Cheers,<br>
<br>
- Ben<br>
</blockquote></div></div></div>