v8-profiler provides node bindings for the v8 profiler and integration with node-inspector
Installation
npm install another-v8-profiler
We now include node v0.10 binaries for a number of platforms. During the install, node-gyp will attempt to build the module for your platform. If it fails (see builderror.log), the module will still be installed, but will attempt to load up an appropriate pre-built binary for your platform if there is one available.
Usage
var profiler = require('another-v8-profiler');
API
profiler properties
heapProfiler
cpuProfiler
cpuProfiler properties
count = getProfilesCount()
cpuProfile = getProfile(index)
cpuProfile = findProfile(index)
startProfiling([name])
cpuProfile = stopProfiling([name])
deleteAllProfiles()
cpuProfile properties
string = getTitle()
integer = getUid()
string = getType()
Serialize( opts={onData: fn, onEnd: fn} )
Delete()
boolean = save([filename])
heapProfiler properties
count = getSnapshotsCount()
heapSnapshot = getSnapshot(index)
heapSnapshot = findSnapshot(index)
heapSnapshot = takeSnapshot([name])
deleteAllSnapshots()
heapSnapshot properties
string = getTitle()
integer = getUid()
string = getType()
Serialize( opts={onData: fn, onEnd: fn} )
Delete()
boolean = save([filename])
Examples
var profiler = require('another-v8-profiler');
var heapProfiler = profiler.heapProfiler;
var snapshot = heapProfiler.takeSnapshot([name]) // takes a heap snapshot
snapshot.save(filename); // save the snapshot to file
snapshot.delete(); // delete the snapshot (releases memory)
var profiler = require('another-v8-profiler');
var cpuProfiler = profiler.cpuProfiler;
cpuProfiler.startProfiling([name]) // begin cpu profiling
var cpuProfile = profiler.stopProfiling([name]) // finish cpu profiling
node-inspector
Cpu profiles can be viewed and heap snapshots may be taken and viewed from the profiles panel.