Skip to content

Instantly share code, notes, and snippets.

@ssddi456
Created February 23, 2013 04:40
Show Gist options
  • Save ssddi456/5018461 to your computer and use it in GitHub Desktop.
Save ssddi456/5018461 to your computer and use it in GitHub Desktop.
a wrapper for typeperf zh-cn windows
var child_process = require('child_process');
var iconvLite = require('iconv-lite');
var csv = require('csv');
var util = require('util');
var events = require('events');
var _ = require('underscore');
var tracecpu = child_process.spawn('typeperf', ["\\Memory\\Available bytes","\\processor(_total)\\% processor time"]);
var lastRecord,
inited,
csvheader= ['timestamp','memory','cpu'];
var typeperf = new events.EventEmitter();
typeperf.getRecord = function (){ return lastRecord; };
var stdlogs = csv()
.from.stream(tracecpu.stdout)
.on('record',function( data ) {
var date = new Date(data[0]);
if( isNaN(date.getTime())){
return
}
if(!inited){
typeperf.emit('open');
inited = true;
}
lastRecord = _.object(csvheader,data);
typeperf.emit( 'record', lastRecord );
console.log(util.format.apply(util,['time %s, memory %s, process %s'].concat(data) ));
});
tracecpu.stderr.on('data',function(data){
console.log( iconvLite.decode(data,'gb2312') );
});
tracecpu.on('error',function( code ){
console.log( 'error', code );
});
tracecpu.on('exit',function( code ){
console.log( 'exit', code );
});
module.exports = typeperf;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment