It's been a few years since I used it, but V8's own built-in profiler is perfectly capable of emitting a stack trace every 10 ms or so (747 samples in 10 seconds in the example). That's what Chrome uses when you profile code in the browser, and it works on all platforms. I wonder what the advantage of this approach is?
It looks like profile_node.stp is just probing timer.profile, but in theory this could be any event that systemtap is capable of. A function in glibc, a syscall, a kernel function, a perf event on say branch misses, ... there are many many possibilities. (Might need to tweak other parts of their analysis that assume a time-based event though.)
7 comments
[ 2.9 ms ] story [ 20.7 ms ] threadAWESOME!