Hello.
I found a strange behavior.
I want to get the method to avoid the behavior.
I compress a data (around 1.8MB) with ZLib.
result:
ok(84ms): 0_data.json.gz
OK, the process finished on around 100ms.
I tried to compress the data in parallel 50.
Having done that, all processes were slow similarly.
result:
ok(987ms): 3_data.json.gz
ok(1002ms): 4_data.json.gz
ok(1002ms): 8_data.json.gz
ok(1004ms): 0_data.json.gz
ok(1004ms): 2_data.json.gz
ok(1003ms): 5_data.json.gz
ok(1002ms): 10_data.json.gz
ok(1003ms): 6_data.json.gz
ok(1004ms): 1_data.json.gz
ok(1002ms): 13_data.json.gz
ok(1003ms): 7_data.json.gz
ok(1002ms): 9_data.json.gz
ok(1002ms): 11_data.json.gz
ok(998ms): 21_data.json.gz
ok(1001ms): 16_data.json.gz
ok(1003ms): 12_data.json.gz
ok(1002ms): 17_data.json.gz
ok(1003ms): 14_data.json.gz
ok(999ms): 20_data.json.gz
ok(999ms): 24_data.json.gz
ok(1002ms): 18_data.json.gz
ok(999ms): 19_data.json.gz
ok(998ms): 26_data.json.gz
ok(999ms): 23_data.json.gz
ok(1002ms): 15_data.json.gz
ok(999ms): 25_data.json.gz
ok(999ms): 28_data.json.gz
ok(999ms): 29_data.json.gz
ok(999ms): 30_data.json.gz
ok(1000ms): 22_data.json.gz
ok(998ms): 33_data.json.gz
ok(998ms): 32_data.json.gz
ok(998ms): 35_data.json.gz
ok(998ms): 38_data.json.gz
ok(999ms): 31_data.json.gz
ok(998ms): 36_data.json.gz
ok(997ms): 44_data.json.gz
ok(997ms): 42_data.json.gz
ok(997ms): 39_data.json.gz
ok(998ms): 34_data.json.gz
ok(997ms): 40_data.json.gz
ok(998ms): 37_data.json.gz
ok(997ms): 41_data.json.gz
ok(997ms): 43_data.json.gz
ok(999ms): 27_data.json.gz
ok(996ms): 48_data.json.gz
ok(996ms): 45_data.json.gz
ok(997ms): 46_data.json.gz
ok(997ms): 47_data.json.gz
ok(996ms): 49_data.json.gz
Each process returned after done all processes.
Why is this?
And what do I do to avoid this behavior?
I had expected that the finished process returns immediately in turn.
eg:
ok(100ms): 3_data.json.gz
ok(100ms): 4_data.json.gz
ok(100ms): 8_data.json.gz
ok(100ms): 0_data.json.gz
ok(100ms): 2_data.json.gz
ok(200ms): 5_data.json.gz
ok(200ms): 10_data.json.gz
ok(200ms): 6_data.json.gz
ok(200ms): 1_data.json.gz
ok(200ms): 13_data.json.gz
ok(300ms): 7_data.json.gz
ok(300ms): 9_data.json.gz
ok(300ms): 11_data.json.gz
....
....
Sorry my poor English.
Thanks.
P.S. test program
'use strict';
var Fs = require('fs');
var Z = require('zlib');
var target = 'data.json';
var times = 50;
var dumpEnd = function (name, begin) {
return function () {
console.log('ok(' + (Date.now() - begin) + 'ms): ' + name);
};
};
for (var i = 0; i < times; ++i) {
var zipName = i + '_' + target + '.gz';
var begin = Date.now();
Fs.createReadStream(target)
.pipe(Z.createGzip())
.pipe(Fs.createWriteStream(zipName))
.on('close', dumpEnd(zipName, begin));
}
--
Job Board: http://jobs.nodejs.org/
Posting guidelines:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en