cordova-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gmail <purplecabb...@gmail.com>
Subject Re: Why CLI & Plugman are so slow
Date Thu, 25 Jul 2013 17:32:46 GMT
+1 to child_process or leave it slow. 

Sent from my iPhone

On Jul 25, 2013, at 10:28 AM, Filip Maj <fil@adobe.com> wrote:

> Yeah that¹s how a lot of the "hey this works native on windows" modules on
> npm works: they have to compile it D:
> 
> On 7/25/13 10:26 AM, "Andrew Grieve" <agrieve@chromium.org> wrote:
> 
>> just tried it, and it "does", but only if you have both python and visual
>> studio installed on your machine. Guess it builds the .dll at npm install
>> time :(
>> 
>> 
>> On Thu, Jul 25, 2013 at 1:23 PM, Anis KADRI <anis.kadri@gmail.com> wrote:
>> 
>>> https://github.com/rbranson/node-ffi
>>> 
>>> looks like it does
>>> 
>>> On Thu, Jul 25, 2013 at 10:14 AM, Filip Maj <fil@adobe.com> wrote:
>>>> Does it work with Windows?
>>>> 
>>>> On 7/25/13 10:11 AM, "Andrew Grieve" <agrieve@chromium.org> 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 <fil@adobe.com> 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" <agrieve@chromium.org>
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();
> 

Mime
View raw message