Ctrl
key in order to Zoom
The steps for Mac and Linux are explained below, but in both cases ensure to run your app with node version >=0.11.3
.
Note: the .cpuprofile files from the Google Chrome DevTools profiler can no longer be loaded directly as a Callgraph since the format changed.
For more info and where to start fixing it please see this issue.
Install cpuprofilify
Run your app with DTrace
sudo profile_1ms.d -c 'node --perf-basic-prof <app>' > dtrace.txt
Load dtrace.txt
into the app as well as /tmp/perf-<pid>.map
Alternatively pipe through cpuprofilify:
cat dtrace.txt | cpuprofilify > dtrace.cpuprofile
and load that into DevTools or the flamegraph app.
One liner for the above:
sudo profile_1ms.d -c 'node --perf-basic-prof <app>' > | cpuprofilify > dtrace.cpuprofile
Make sure to cleanly shutdown your app so the symbols files can be written, see here
Run your app with perf:
perf record -e cycles:u -g -- node --perf-basic-prof app.js
Extract trace from perf.data
file
perf script > perf-script.txt
perf-script.txt
file as the Callgraph suffices since perf
already resolved the symbols.
Create a cpuprofile with v8-profiler and load that into the app