On Thu, Aug 8, 2013 at 12:30 PM, Zoid <[email protected]> wrote: > I ran my app with --prof key to create v8.log. Then I installed node-tick > and ran it to analyze the log. It turned out that most of the time is spent > in EXTERNAL VM state. > > Node is 0.8.22 > > I interpret the node-tick log as the app spends most time (335 / 419 = 80%) > in External VM state running unknown code from addresses b77d0000-b77d1000 > > How do I figure out what's going on? > > -- Andy > > > [foo@bar pp] ~/node_modules/.bin/node-tick-processor -e | grep -Fv "Code > move event for unknown code" | less > > Statistical profiling result from v8.log, (419870 ticks, 0 unaccounted, > 57996 excluded). > > [Shared libraries]: > ticks total nonlib name > 335228 79.8% 0.0% b77d0000-b77d1000 > 26541 6.3% 0.0% /usr/bin/node > 66 0.0% 0.0% /usr/lib/libpthread-2.17.so > 25 0.0% 0.0% /usr/lib/libc-2.17.so > 5 0.0% 0.0% /usr/lib/libstdc++.so.6.0.18 > 4 0.0% 0.0% /usr/lib/libcrypto.so.1.0.0 > 3 0.0% 0.0% /usr/lib/libgcc_s.so.1 > 2 0.0% 0.0% /usr/lib/libssl.so.1.0.0 > > [JavaScript]: > ticks total nonlib name > > [C++]: > ticks total nonlib name > > [GC]: > ticks total nonlib name > 15866 3.8% > > [Bottom up (heavy) profile]: > Note: percentage shows a share of a particular caller in the total > amount of its parent calls. > Callers occupying less than 2.0% are not shown. > > ticks parent name > 335228 79.8% b77d0000-b77d1000 > > 26541 6.3% /usr/bin/node
That's the vDSO, a memory page that's shared between a process and the kernel. When your program spends most of its time in the vDSO, it means it's spending most of its time in system calls - most likely in epoll_wait(), the system call that powers the event loop. That's expected, particularly when the node process is mostly idle. If you want to investigate further: `strace -c node script.js` prints a tally of the system calls the process makes and the wall clock time spent in them. `time node script.js` prints a breakdown of user vs. kernel CPU and wall clock time (among other things.) -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
