Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Profiling node application: most time spent in node itself

I am using a node application that is experiencing a performance problem under certain loads. I am attempting to use the V8 profiler to find out where the problem might be, basically following this guide.

I've generated a log file during the problem load using node --prof app.js, and analyzed it with node --prof-process isolate-0xnnnnnnnnnnnn-v8.log > processed.txt. This all seems to work fine, but it seems that almost all the ticks are spent in the node executable itself:

 [Summary]:
   ticks  total  nonlib   name
   3887    5.8%   38.2%  JavaScript
   5590    8.4%   55.0%  C++
    346    0.5%    3.4%  GC
  56296   84.7%          Shared libraries
    689    1.0%          Unaccounted

and:

 [Shared libraries]:
   ticks  total  nonlib   name
  55990   84.2%          /usr/bin/node
    225    0.3%          /lib/x86_64-linux-gnu/libc-2.19.so
     68    0.1%          /lib/x86_64-linux-gnu/libpthread-2.19.so
      7    0.0%          /lib/x86_64-linux-gnu/libm-2.19.so
      4    0.0%          [vdso]
      2    0.0%          /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.20

What does this mean? What is the app spending all its time doing? How can I find the performance problem?

like image 569
jnorthco Avatar asked Jan 22 '18 18:01

jnorthco


1 Answers

I would suggest to try VTune Amplifier as alternative of the V8 profiler. I was able to identify and fix the time-consuming place in my code. You can download free trial version here and just follow by this step-by-step instructions. Hope it will help you.

like image 86
Denis Pravdin Avatar answered Oct 20 '22 22:10

Denis Pravdin