[erlang-questions] node.js vs erlang

Joe Armstrong erlang@REDACTED
Tue Jun 17 13:48:12 CEST 2014


On Tue, Jun 17, 2014 at 1:00 PM, Greg Young <gregoryyoung1@REDACTED> wrote:

> Are you testing against single threaded node or one of the clustered
> versions or multiple processes or?
>
>
>
Single threaded

/Joe


> On Tue, Jun 17, 2014 at 1:19 PM, Joe Armstrong <erlang@REDACTED> wrote:
>
>>
>>
>> On Tue, Jun 17, 2014 at 12:10 PM, Greg Young <gregoryyoung1@REDACTED>
>> wrote:
>>
>>> Can you really compare the two? :)
>>>
>>
>> Yes - there are many things we can measure. Performance, Latency, memory
>> usage and so on.
>>
>> Right now I'm measuring latency -
>>
>> I set up a few thousand parallel processes which request fib(N) and
>> measure the latency of the responses.
>>
>> the results will be published when I understand them :-)
>>
>> /Joe
>>
>>
>>
>>
>>
>>
>>>
>>>
>>> On Mon, Jun 16, 2014 at 5:55 PM, Juan Facorro <juan.facorro@REDACTED>
>>> wrote:
>>>
>>>> Hi Joe,
>>>>
>>>> There's a semicolon missing after the declaration of fib(), which for
>>>> some reason, causes the stack overflow. After adding it the error went away.
>>>>
>>>> HTH,
>>>>
>>>> J
>>>>
>>>> On Monday, June 16, 2014 11:22:23 AM UTC-3, Joe Armstrong wrote:
>>>>>
>>>>> I'm trying to compare node.js with erlang. I'm a total node.js novice
>>>>> BTW - but I've written some JS.
>>>>>
>>>>> Program 1 is just fibonacci - I want a web server to compute fib(N)
>>>>>
>>>>> So requesting http://127.0.0.1:8124/fib?n=2 should compute and return
>>>>> fib(2)
>>>>>
>>>>> My node.js attempt crashes
>>>>> Here's the code in fib.js
>>>>>
>>>>> --- fib.js
>>>>>
>>>>> var http = require('http');
>>>>> var url  = require('url');
>>>>>
>>>>> function fib(n) {
>>>>>   if (n < 2) {
>>>>>     return 1;
>>>>>   } else {
>>>>>     return fib(n - 2) + fib(n - 1);
>>>>>   }
>>>>> }
>>>>>
>>>>> http.createServer(function (req, res) {
>>>>>     var q = url.parse(req.url, true).query;
>>>>>     var n = q.n;
>>>>>     var result = fib(n);
>>>>>     console.log('fib('+ n + ')= '+result);
>>>>>     res.writeHead(200, {'Content-Type': 'text/plain'});
>>>>>     res.end(result.toString());
>>>>> }).listen(8124, "127.0.0.1");
>>>>>
>>>>> console.log('Server running at http://127.0.0.1:8124/');
>>>>>
>>>>> -- end
>>>>>
>>>>> -- now we run it
>>>>>
>>>>> $ node fib.js
>>>>> Server running at http://127.0.0.1:8124/
>>>>> fib(2)= 2
>>>>>
>>>>> /home/ejoearm/Dropbox/experiments/hello_world/fib.js:5
>>>>> function fib(n) {
>>>>>             ^
>>>>> RangeError: Maximum call stack size exceeded
>>>>>
>>>>> fib(2) has run out of stack space????
>>>>>
>>>>> $ node --version
>>>>> v0.8.21
>>>>>
>>>>> Any ideas what I'm doing wrong
>>>>>
>>>>> Cheers
>>>>>
>>>>> /Joe
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  --
>>>> Remember to send a copy to erlang (dot) questions (at) erlang (dot) org
>>>> when posting.
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Erlang Programming" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to erlang-programming+unsubscribe@REDACTED
>>>> To post to this group, send email to
>>>> erlang-programming@REDACTED
>>>> Visit this group at http://groups.google.com/group/erlang-programming.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> --
>>> Studying for the Turing test
>>>
>>
>>
>
>
> --
> Studying for the Turing test
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140617/717cac07/attachment.htm>


More information about the erlang-questions mailing list