firefox-devtools / profiler

Firefox Profiler — Web app for Firefox performance analysis
https://profiler.firefox.com
Mozilla Public License 2.0
1.19k stars 388 forks source link

Add a "Drop samples" dropdown to the stack settings toolbar #911

Open gregtatum opened 6 years ago

gregtatum commented 6 years ago

It should provide an option to toggle samples that contain.

Idle stacks are currently not instrumented with pseudo stacks, so we'll need to string sniff. The following function names should be filtered:

mstange can you help me with filling these in ^

┆Issue is synchronized with this Jira Task

fqueze commented 6 years ago

NtWaitForAlertByThreadId and NtUserMsgWaitForMultipleObjectsEx are the 2 symbols I typically see at the bottom of idle stacks on Windows profiles.

julienw commented 6 years ago

On Linux' libc it is __poll. I also see things like pthread_cond_wait, I don't know if that should be included. Likely yes (especially visible in the compositor, maybe that's for threads).

julienw commented 6 years ago

I see __poll for workers too.

julienw commented 6 years ago

On Mac, I see __psynch_cvwait for the compositor.

julienw commented 6 years ago

On Mac, I see __psynch_cvwait for the compositor.

On Windows, this is NtUserMsgWaitForMultipleObjectsEx, so like other processes.

mikeconley commented 6 years ago

Note that sometimes, stacks will have a leafnode at something like NtWaitForAlertByThreadId not because they're idle, but because they're waiting synchronously for something to complete (like something to finish on a different thread). We need to make sure this information isn't accidentally lost.

julienw commented 6 years ago

I don't know how we can discriminate such a synchronous wait. Maybe the stack actually looks different ?