sharedmemory
Version:
Cluster Shared Memory
62 lines (42 loc) • 1.13 kB
JavaScript
var initSharedMemory = require('../../sharedmemory').init;
var cluster = require('cluster');
var numCPUs = require('os').cpus().length;
var cfg = {
cache: {
type: 'expire',
time: 20000
//type: 'LRU',
//max: 10000
}
};
var sharedMemoryController = initSharedMemory(cfg);
var watch = function(name, func, count) {
var i;
var startTime = Date.now();
for (i = 0; i < count; i++) {
func(i);
}
var endTime = Date.now();
var time = endTime - startTime;
var avgTime = (count / time * 1000).toFixed(2);
console.log(name + ' => ' + count + ' 次 | 总耗时 ' + time + ' ms | 平均 ' + avgTime + ' o/s');
};
if (cluster.isMaster) {
// transfer
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
} else {
var max = 100 * 1000;
watch('set', function(i) {
sharedMemoryController.set(cluster.worker.id + '-' + i, i);
},
max);
for (var i = 0; i < max; i++) {
sharedMemoryController.set(i, i);
}
watch('get', function(i) {
sharedMemoryController.get(i);
},
max);
}