Thanks for the response. Can I avoid or lessen that worker threads delay the JavaScript main thread? 4 CPU cores exists and HT supported. (I think ... the priority of main thread set to higher, ...?)
Toru Nagashima. 2012年12月5日水曜日 19時27分09秒 UTC+9 Dan Milon: > > It doesnt look like they wait for the previous ones to complete. > Its just more load, so the threads queue up, hence the high latencies. > > danmilon. > > On 12/05/2012 12:24 PM, 長島徹 wrote: > > 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 > > nod...@googlegroups.com <javascript:> To unsubscribe from this group, > send email > > to nodejs+un...@googlegroups.com <javascript:> For more options, visit > this > > group at http://groups.google.com/group/nodejs?hl=en?hl=en > > -- 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 nodejs@googlegroups.com To unsubscribe from this group, send email to nodejs+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en