UNPKG

executor-service

Version:

An "ExecutorService" implementation closely modeled after its java counterpart. Provides child-process executors to mimic multithreaded executors. Implements "createExecutor(module_path_or_local_fn, [module_or_fn_constructor_args]), and "createExecutorPoo

44 lines (39 loc) 965 B
var ExecutorService = require("./lib/ExecutorService"); var executor = ExecutorService.createExecutorPool(1, function(){ return { echo : function (x, cb) { return cb(null, x); } } }); function syncLoop( amt, cb ) { var ct=0; var loop = function () { executor.invoke('echo',++ct,function (err, result){ if (ct < amt) return loop(); cb(); }) } loop(); } function asyncLoop( amt, cb ) { var ct=0; var loop = function () { executor.invoke('echo',++ct,function (err, result){ if (ct < amt) return; cb(); }) } for(var i=0; i<amt; i++) loop(); } var start_sync = Date.now(); syncLoop(100000, function(){ var ops = ( 100000/ (Date.now()-start_sync)) * 1000; console.log("syncLoop: %s ops/s",ops) var start_async = Date.now(); asyncLoop(100000, function(){ var ops = ( 100000/ (Date.now()-start_async)) * 1000; console.log("asyncLoop: %s ops/s",ops) process.exit(); }) })