Does it work with Windows? On 7/25/13 10:11 AM, "Andrew Grieve" <[email protected]> wrote:
>Looks like the fix is pretty easy: > >agrieve@agrieve-macbookpro ~/git/cordova/tmp$ time node go3.js >went 0 times >went 10 times >went 20 times >went 30 times >went 40 times >went 50 times >went 60 times >went 70 times >went 80 times >went 90 times >went 100 times > >real 0m0.444s >user 0m0.266s >sys 0m0.158s > > >All I did was replace "shelljs" with "shelljs-ffi". > > >On Thu, Jul 25, 2013 at 12:53 PM, Filip Maj <[email protected]> wrote: > >> Cool, nice work. >> >> We could either try to contribute to shelljs or rip it out and go all >> child process all the time >> >> In any case I think this bench should be submitted to shelljs repo. >>@r2r, >> dude who maintains it, would probably like to know >> >> On 7/25/13 9:50 AM, "Andrew Grieve" <[email protected]> wrote: >> >> >One reason: shelljs.exec() >> > >> >Did a test to see how many times I could execute "true". 9 seconds vs >>.5 >> >seconds! >> > >> > >> >agrieve@agrieve-macbookpro ~/git/cordova/tmp$ time node shelljstest.js >> >went 0 times >> >went 10 times >> >went 20 times >> >went 30 times >> >went 40 times >> >went 50 times >> >went 60 times >> >went 70 times >> >went 80 times >> >went 90 times >> >went 100 times >> > >> >real 0m8.873s >> >user 0m10.941s >> >sys 0m6.005s >> >agrieve@agrieve-macbookpro ~/git/cordova/tmp$ time node >> >child_processtest.js >> >went 10 times >> >went 20 times >> >went 30 times >> >went 40 times >> >went 50 times >> >went 60 times >> >went 70 times >> >went 80 times >> >went 90 times >> >went 100 times >> > >> >real 0m0.470s >> >user 0m0.278s >> >sys 0m0.228s >> > >> > >> >Here's the code: >> >shelljstest.js >> > >> >var shjs = require('shelljs'); >> >> for (var i = 0; ; ++i) { >> >> shjs.exec('true'); >> >> if ((i / 10 | 0) == i / 10) { >> >> console.log('went ' + i + ' times'); >> >> } >> >> if (i == 100) { >> >> process.exit(0); >> >> } >> >> } >> > >> > >> >child_processtest.js >> > >> >var child = require('child_process'); >> >> var i = 0; >> >> function go() { >> >> child.exec('true', function() { >> >> ++i; >> >> if ((i / 10 | 0) == i / 10) { >> >> console.log('went ' + i + ' times'); >> >> } >> >> if (i == 100) { >> >> process.exit(0); >> >> } >> >> go(); >> >> }); >> >> } >> >> go(); >> >>
