[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