I am looking for a method to do precise Node.JS
profiling of script execution times on Linux.
There are interesting projects like the NodeTime.com Performance Profiler, but this profiles the timing of I/O httprequests and such, not execution time of lines of code.
I am looking for a way to figure out exactly where I can optimize my Javascript, where most of the time is spent, etc.
One interesting method I've seen is trying to create a FlameGraph using DTrace to profile Node.JS.
However, dtrace
is very Solaris-specific.
dtrace
can be found in the sytemtap-sdt-dev
package. However, stap dtrace
is not the same, and lacks all relevant hooks/probes.Oracle
port, but noone would recommend it. Apparently, it only has about 0,1 percent of the probes the Paul Fox port. (Which is ironic, because Oracle
was formerly Sun
, original authors of dtrace
for Solaris
)How, in Linux, using the terminal or using Eclipse, can I profile the code of my Node.JS scripts? I'm looking for something specific like the Zend Profiler shows execution times of each command in code of PHP scripts.
In order to measure code execution time you have to provide time returned by the first process. hrtime() call, as a parameter to the second process. hrtime() call.
The easiest way in Node. js to profile applications is by using the inbuilt profiler, which collects all the data from functions and logs it into a file. Node. js implements this by introducing the --prof flag, which communicates with the V8 profiler and then logs the data.
To see if Node. js is installed, type node -v in Terminal. This should print the version number so you'll see something like this v0. 10.35 .
One way to delay execution of a function in NodeJS is to use the seTimeout() function. Just put the code you want to delay in the callback. For example, below is how you can wait 1 second before executing some code.
"look" is a very good tool made by Vadim for profiling NodeJS app.
Take a look here:
https://github.com/baryshev/look
If you're not against using nodetime, it actually does have CPU profiling:
See: http://nodetime.com/blog/cpu-profiling-with-nodetime
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With