profiler
profiler copied to clipboard
Make it easier to identify samples where we were _only_ running script
This is distinct from the "JS Only" view in the Tree View, since that feature shows us stacks where JS is involved. What I'm requesting here is slightly deeper - what I'm hoping for is something that highlights samples where the deepest part of the stack is still JS, and that the JS isn't calling into platform-y things.
I think this would help us identify things like "this page is just running super expensive algorithms in JS".
/cc jrmuizel
┆Issue is synchronized with this Jira Task
It sounds like you are saying "Drop samples with non-JS leaf nodes"? This could get implemented as a transform.
I think we need to resolves #586 first (which needs a Gecko patch: https://bugzilla.mozilla.org/show_bug.cgi?id=1426124).
cpp -> js -> js
cpp -> js -> js -> cpp
cpp
cpp -> js
Would then get transformed to:
cpp -> js -> js
cpp -> js
It sounds like you are saying "Drop samples with non-JS leaf nodes"?
Yeah, I think that sounds right.
Would it be more helpful the other way? I mean, drop samples with JS-leaf nodes, so that we can see how time is distributed inside the platform-y things. And from there, we can further identify any performance issue inside the platform code without things from JS.
Maybe that's what "c++ only" should really do. Is the current behavior of "c++ only" actually useful ?
That's probably true? The current behavior of "C++ only" for me is somehow useful to shallow the call tree... but I don't see other usefulness there indeed.
I agree it would be very useful to separate JS execution from platform calls.
I always assumed that the "C++ only" thing referred to the stack type (C++ stacks vs JS stacks). I never really explored that stuff, but we should be wary about muddying the difference between a JS callstack and a C++ callstack in the interpreter.
This should be implemented with this: https://github.com/devtools-html/perf.html/issues/911
Does the activity graph answer this question? If it's yellow at the top of the graph, it means we're doing JS. Is that good enough?