cpuprofile2stackcollapse
v1.0.0
Published
Convert .cpuprofile files to "folded" stacks for flamegraph.pl
Downloads
8
Maintainers
Readme
cpuprofile2stackcollapse
This tool converts cpuprofile
data, as generated by v8-profiler
or by Chrome DevTools, into collapsed stack samples consumable by Brendan Gregg's FlameGraph tool.
This has been tested to work with Node v4.x and Node 6.x, and the cpuprofile data generated by the builtin profilers in each.
Note: This tool does not process data produced by
node --prof
. Yet.
Usage
Pipe cpuprofile
data to it, and get collapsed stack samples on stdout.
Example:
# assuming you've generated a cpuprofile file as named here
# and that you have FlameGraph cloned at ~/FlameGraph
cat myapplication.cpuprofile | cpuprofile2stackcollapse | ~/FlameGraph/flamegraph.pl > myapplication.svg
You can also use it programattically, as a transform stream:
const convert = require('cpuprofile2stackcollapse');
const fs = require('fs');
fs.createReadStream('./myapplication.cpuprofile')
.pipe(convert())
.pipe(fs.createWriteStream('./myapplication.stacks'));
You can use this to create stacks before and after a change, and use the difffolded.pl
tool to make a comparison flamegraph.
cat myapp-before-change.cpuprofile | cpuprofile2stackcollapse > myapp-before-change.stacks
cat myapp-after-change.cpuprofile | cpuprofile2stackcollapse > myapp-after-change.stacks
~/FlameGraph/difffolded.pl myapp-before-change.stacks myapp-after-change.stacks | ~/FlameGraph/flamegraph.pl > myapp-diff.svg
License
MIT License. See LICENSE.txt