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

Reply via email to