You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Google Chrome's profiler has this issue where, when looking at a particular function/line that takes a long time, it's really hard to differentiate
between
High number of calls with small cost
Single number of calls with large cost
Currently dd profiling has the same problem. It would be great that we can add the "number of samples" to the flamegraph, that'd really help a huge ton with our profiling.
The text was updated successfully, but these errors were encountered:
Unfortunately the number of samples wouldn't help much, since both cases would result in exactly the same number of samples because sampling is done every ~10ms regardless of if the function was exited and reentered or not. Basically this is a general problem with profiling and not something we can fix, at least not short term without a completely custom profiler or an entirely new profiler added to Node or V8.
Thanks for that explanation, I think I understand a bit better now! You're basically saying that because the profiler works by inspecting the call stack every ~10ms, it's by no means measuring the actual # of calls to that function.
I thought firefox profiler has the # of samples hence assumed it was useful information.
I guess to get real tracing capabilities, what we really need is to have something like, dtrace/ebpf support, which node has been lacking compared to other languages, unfortunately. Actively waiting on nodejs/node#44550 to happen...
Google Chrome's profiler has this issue where, when looking at a particular function/line that takes a long time, it's really hard to differentiate
between
Currently dd profiling has the same problem. It would be great that we can add the "number of samples" to the flamegraph, that'd really help a huge ton with our profiling.
The text was updated successfully, but these errors were encountered: