About performance, from my POV the differences are the concurrency models each platform uses.

From one side, IIS has a thread pool, one thread per connection and blocking IO.
At the other hand, node has one thread, and non blocking IO.

First approach problem is that memory consumption is increased linearly with each concurrent request because each thread has its own stack. (try spinning 10k threads)

Also the more the requests, the more the threads running, thus more time is spent on context switching between these threads instead of doing something valuable.

The obvious solution would be async & non blocking IO, but it is not so straight forward to implement it, and any solution wouldnt be cross platform, but we are lucky all this complexity is abstracted by libev/libuv. Javascript made a perfect fit for a higher level language due to language-level anonymous functions & closures which allow you to write non blocking code easier.

Of course there are very many problems introduced with async & javascript, eg callback nightmare and you should be aware you will face this sooner or later.

But it is not all about performance. For me, writing nodejs code feels exciting and very pleasant! The community involved is very active, eager to help you, and all of this construct a very balanced ecosystem.

Correct me if im wrong but I believe ASP.NET's community involves old guys that try out something only if it has the word "enterprise" on the description.

Whenever i argue with a friend about performance, threads, async, sync and stuff it always ends up with drama! Best thing you can do is tell him you feel nice coding node and have him try it out, think of a project to do together and have fun etc. Im sure next time he will ask you to write your next code in node ;)

Hope I've helped,
Dan Milon.


On 07/03/2012 08:56 PM, Justin Collum wrote:
Had a discussion with a friend about Nodejs the other day. We are both C# / MVC / ASP.NET devs, with about 10 years experience. He asked me why someone would choose Nodejs over IIS + MVC . My argument was 1) performance 2) non-blocking IO. Keep in mind that I don't know a lot about node, I've built one small site and that's it. So my argument in favor was pretty short.

His response: Well, if I need performance on IIS I can just bump up the number of threads in the thread pool. Fair point.

After looking into it a bit, it seems that the big difference between IIS + MVC and Node is that each thread can do more in the Node world because of the non-blocking IO. This cuts down on context switching and makes for better overall performance. Add that to the "one language to rule them all: coffeescript" factor and it's a clear win to me.

Is that a fair summary of the performance advantages of Nodejs over IIS + MVC? Is there more to it?

I'm aware that you can run Nodejs via IIS but my intuition tells me that won't be a good fit.
--
Job Board: http://jobs.nodejs.org/
Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en


--
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to