[erlang-questions] node.js vs erlang

Lee Sylvester lee.sylvester@REDACTED
Tue Jun 17 12:22:00 CEST 2014


As a heads up; I once built an app in NodeJS which did a lot of heavy lifting on connections and database calls.  I ran into some pretty major issues with file descriptors and resource usage which ended up being crippling with little room to manoeuvre.  I don’t get those issues, anymore, with Erlang :-)

Lee


On 17 Jun 2014, at 11:19, 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
> 
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140617/02c5696f/attachment.htm>


More information about the erlang-questions mailing list