I've read a lot about Node.js being fast and able to accommodate large amounts of load. Does anyone have any real-world evidence of this vs other frameworks, particularly .Net? Most of the articles I've read are anecdotal or don't have comparisons to .Net.
-
1Could you be more precise in what kind of scenario we are talking? – Marcus Granström Feb 15 '12 at 10:02
-
1I'm interested in any performance comparison of .Net and Node.js for comparable web applications running in IIS. – David Merrilees Feb 15 '12 at 13:25
-
1I can't imagine anyone building a web site that had high perf. requirements out of .Net. The most basic problem you'd run into is that it's not going to be very cost effective in terms of licensing since high perf. sites usually require scaling out. And no I'm not a .Net hater. .Net pays the bills. – Shane Courtrille Feb 15 '12 at 14:52
-
4I had to do internal tests of a small REST API using Node/express/mongo and the new .net webapi/mongo and there were perf differences based on what the client wanted, but at the end of the day, not enough to make a difference. You need to develop your own tests based on your own scenarios. It took us three days to write the different APIs in both languages and then another couple days to properly setup testing. If you are planning on doing anything remotely serious, I would suggest setting up tests based on your requirements and decide for yourself which is better for your load. – AlexGad May 02 '12 at 18:48
-
@AlexGad comment seems closest to the answer. I'm looking for similar information as well. Most typical scenario for .NET developers looking to move to nodejs is this: I have an ASP.NET MVC application. If I convert (split) that to a nodejs server dishing out JSON APIs, consumed by a jquery/knockout.js single page app, would that be more performant than the original MVC app? i'm not able to find answer to this question. most of the nodejs performance claims are anecdotal so far. – Shankar May 16 '12 at 18:54
-
http://stackoverflow.com/questions/5599024/what-so-different-about-node-jss-event-driven-cant-we-do-that-in-asp-nets-ht – alessioalex May 18 '12 at 08:44
-
An interesting article related to this topic: http://rarcher.azurewebsites.net/Post/PostContent/19 – David Merrilees Nov 14 '12 at 13:20
-
These two blog posts weigh in on the subject: ".NET and Node.JS – Performance Comparison" - http://www.salmanq.com/blog/net-and-node-js-performance-comparison/2013/03/ and "Response to the .NET vs Node.JS performance post" - http://guillaume86.calepin.co/dotnet-vs-nodejs-performance.html – Kofi Sarfo Mar 30 '13 at 20:06
-
8@ShaneCourtrille You're confusing .Net (a framework) and Windows (an operating system). They are very different things and there are NO licensing requirements for .Net (which runs quite nicely on Linux as Mono). – rainabba Nov 01 '13 at 21:57
-
@rainabba Very good point – Shane Courtrille Nov 04 '13 at 19:18
-
Also keep in mind about scaling the server. With node cluster you can spin a process on every core with couple of lines of code. Than try to compare again :). As far as I know its not that easy to scale a .NET server (compared to node) – Denko Mancheski Feb 16 '16 at 09:16
5 Answers
Being FAST and handling lots of LOAD are two different things. A server that's really FAST at serving one request per second might totally croak if you send it 500 requests per second (under LOAD).
You also have to consider static (and cached) vs dynamic pages. If you're worried about static pages, then IIS is probably going to beat node because IIS uses kernel-mode caching, which means that requests which request a static page are not even going to get out of the kernel.
I'm guessing that you're looking for a comparison between ASP.NET and node. In this battle, after everything's been compiled/interpreted you're probably going to be pretty close in performance. Maybe .NET's a little FASTER or maybe node's a little FASTER, but it's probably close enough that you don't care. I'd bet on .NET, but I don't know for sure.
The place that node is really compelling is for handling LOAD. This is where the technologies really differ. ASP.NET dedicates a thread for each request from its thread pool, and once ASP.NET has exhausted all the available threads requests begin to get queued up. If you're serving "Hello World" apps like the example by @shankar, then this might not matter that much because the threads aren't going to be blocked and you're going to be able to handle a lot of requests before you run out of threads. The problem with the ASP.NET model comes when you start making I/O requests that block the thread (call to a DB, make an http request to a service, read a file from disk). These blocking requests mean that your valuable thread from the thread pool is doing nothing. The more blocking you have, the less LOAD your ASP.NET app is going to be able to serve.
To prevent this blocking, you use I/O completion ports which don't require holding a thread while you wait for a response. ASP.NET supports this, but unfortunately many of the common frameworks/libraries in .NET DON'T. For example, ADO.NET supports I/O completion ports, but Entity Framework doesn't use them. So you can build an ASP.NET app that's purely asynchronous and handles lots of load, but most people don't because it isn't as easy as building one that's synchronous, and you might not be able to use some of your favorite parts of the framework (like linq to entities) if you do.
The problem is that ASP.NET (and the .NET Framework) were created to be un-opinionated about asynchronous I/O. .NET doesn't care if you write synchronous or asynchronous code, so it's up to the developer to make this decision. Part of this is because threading and programming with asynchronous operations was thought to be "hard", and .NET wanted to make everyone happy (noobs and experts). It got even harder because .NET ended up with 3-4 different patterns for doing async. .NET 4.5 is trying to go back and retrofit the .NET framework to have an opinionated model around async IO, but it may be a while until the frameworks you care about actually support it.
The designers of node on the other hand, made an opinionated choice that ALL I/O should be async. Because of this decision, node designers were also able to make the decision that each instance of node would be single threaded to minimize thread switching, and that one thread would just execute code that had been queued. That might be a new request, it might be the callback from a DB request, it might be the callback from a http rest request you made. Node tries to maximize CPU efficiency by eliminating thread context switches. Because node made this opinionated choice that ALL I/O is asynchronous, that also means that all it's frameworks/add-ons support this choice. It's easier to write apps that are 100% async in node (because node forces you to write apps that are async).
Again, I don't have any hard numbers to prove one way or another, but I think node would win the LOAD competition for the typical web app. A highly optimized (100% async) .NET app might give the equivalent node.js app a run for it's money, but if you took an average of all the .NET and all the node apps out there, on average node probably handles more LOAD.

- 20,030
- 7
- 43
- 238

- 5,887
- 1
- 23
- 23
-
48Remember that ASP.NET has supported async request handlers for a long time, and with MVC4 they have become extremely simple to use. – fabspro Dec 25 '12 at 05:07
-
1I'm a huge c# linq fan but the only thing I would add is its much easier to write async in node.js and also easier in general to write node.js apps if you are good at JavaScript. The power and simplicity and terseness of it are very compelling just on a code level alone. – King Friday Jan 22 '13 at 18:15
-
Sounds like the previous test could be altered to be "more valid" with the addition of a pause to simulate activity? – pkr2000 Mar 11 '13 at 13:45
-
15**"These blocking requests mean that your valuable thread from the thread pool is doing nothing. The more blocking you have, the less LOAD your ASP.NET app is going to be able to serve."** Why does it matter whether we queue up front (the incoming request) or in the backend (the actual work thread)? No matter what, the client request is waiting for the response. I think the key that people overlook in this debate is "Throughput". Its not about how many concurrent connections a server hold, its how fast it can respond to each request right? – sjdirect Mar 28 '13 at 23:30
-
@sjdirect - Throughput is not the same as response time. You're right to care about response time, but it's not a tradeoff between queuing up front or in the backend. It's a choice between queuing up front AND in the backend, or just in the backend. Processing of the request is going to take just as long in both scenarios, but if your request threads are blocked, then you're adding queue time to the requests as well. You're basically saying, if I have more than X requests, then I can't even start processing your request, so you have to wait. – Matt Dotson May 01 '13 at 19:14
-
23//Won't let me edit my comment, so here's what I meant to say.// @sjdirect - Throughput is not the same as response time. You're right to care about response time, but it's a choice between queue time + response time, or just response time. Processing of the request is going to take just as long in both scenarios (Executing synchronously is NOT going to make your DB request execute any faster), but if your request threads are blocked, then you're adding queue time to the requests as well because you can't even start processing the request until the previous requests are done. – Matt Dotson May 01 '13 at 19:21
-
9This was really informative, thank you! One thing to note though is that Entity Framework 6 (currently RC1) now supports the asynchronous pattern from .NET 4.5. http://msdn.microsoft.com/en-us/data/jj819165 – parliament Sep 05 '13 at 15:04
-
1Here is a pretty thorough comparison of the two from 2012: http://rarcher.azurewebsites.net/Post/PostContent/19 – Tyler Jones Jul 07 '14 at 23:39
-
5This is hugely speculative! It would be great to have data. That's usually how I decide how to proceed with topics of performance. – kingPuppy Feb 13 '15 at 20:59
-
2ASP.NET 5 is now open source and so are the benchmarks: https://github.com/aspnet/benchmarks#plain-text-with-http-pipelining – Eivind Gussiås Løkseth Dec 05 '15 at 23:12
-
1
-
@nixkuroi: sort of; it will scale better and therefor has the possibility to perform better under heavier load. See https://msdn.microsoft.com/en-us/magazine/dn802603.aspx – Stefan Feb 21 '18 at 02:03
-
3@nixkuroi not exactly. The advantage of using async/await is that when a request does I/O operations (read from disk, database, make an http request), you will not **hold the thread** idle while it awaits the I/O. Why should you care about not holding the threads unnecessarily? Because if your server is receiving a lot of requests, the chances of it being out of threads is less likely. If it runs out of threads, the request can't even begin to be processed, so they are queued. That's what Matt said about being a choice of *queue time + response time* against *just response time*. – Alisson Reinaldo Silva Mar 28 '18 at 04:19
-
2@Alisson - right, but I think what I meant (It's been a while) was that async/await equalizes the queue/response time issue with Node.js (by not holding the thread), so at that point, it comes down to which compiled language is faster. Assuming c#'s compiler optimizations make the code run faster than node.js, and the queue time is the not a factor, async/await with c# is faster overall? – nixkuroi Mar 29 '18 at 20:20
-
2@nixkuroi you're right, properly using async/await equalizes with Node.js. I don't know if c#'s compiler optimizations make the code run faster than node.js, but if that's true, then I believe you are right about c# being faster overall. Btw, I've seen some bechmarks pointing .net core as being faster than node.js, therefore I'm assuming your assumption is correct. – Alisson Reinaldo Silva Mar 30 '18 at 03:07
-
I programme in nodejs for ages and I don't know any library that blocks the thread when a call to a DB is made. Your example is anecdotal. – João Pimentel Ferreira May 09 '21 at 09:37
I did a rudimentary performance test between nodejs and IIS. IIS is about 2.5 times faster than nodejs when dishing out "hello, world!". code below.
my hardware: Dell Latitude E6510, Core i5 (dual core), 8 GB RAM, Windows 7 Enterprise 64 bit OS
node server
runs at http://localhost:9090/
/// <reference path="node-vsdoc.js" />
var http = require("http");
http.createServer(function (request, response) {
response.writeHead(200, { "Content-Type": "text/html" });
response.write("<p>hello, world!</p>");
response.end();
}).listen(9090);
default.htm
hosted by iis at http://localhost/test/
<p>hello, world!</p>
my own benchmark program using task parallel library:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
namespace HttpBench
{
class Program
{
private int TotalCount = 100000;
private int ConcurrentThreads = 1000;
private int failedCount;
private int totalBytes;
private int totalTime;
private int completedCount;
private static object lockObj = new object();
/// <summary>
/// main entry point
/// </summary>
static void Main(string[] args)
{
Program p = new Program();
p.Run(args);
}
/// <summary>
/// actual execution
/// </summary>
private void Run(string[] args)
{
// check command line
if (args.Length == 0)
{
this.PrintUsage();
return;
}
if (args[0] == "/?" || args[0] == "/h")
{
this.PrintUsage();
return;
}
// use parallel library, download data
ParallelOptions options = new ParallelOptions();
options.MaxDegreeOfParallelism = this.ConcurrentThreads;
int start = Environment.TickCount;
Parallel.For(0, this.TotalCount, options, i =>
{
this.DownloadUrl(i, args[0]);
}
);
int end = Environment.TickCount;
// print results
this.Print("Total requests sent: {0}", true, this.TotalCount);
this.Print("Concurrent threads: {0}", true, this.ConcurrentThreads);
this.Print("Total completed requests: {0}", true, this.completedCount);
this.Print("Failed requests: {0}", true, this.failedCount);
this.Print("Sum total of thread times (seconds): {0}", true, this.totalTime / 1000);
this.Print("Total time taken by this program (seconds): {0}", true, (end - start) / 1000);
this.Print("Total bytes: {0}", true, this.totalBytes);
}
/// <summary>
/// download data from the given url
/// </summary>
private void DownloadUrl(int index, string url)
{
using (WebClient client = new WebClient())
{
try
{
int start = Environment.TickCount;
byte[] data = client.DownloadData(url);
int end = Environment.TickCount;
lock (lockObj)
{
this.totalTime = this.totalTime + (end - start);
if (data != null)
{
this.totalBytes = this.totalBytes + data.Length;
}
}
}
catch
{
lock (lockObj) { this.failedCount++; }
}
lock (lockObj)
{
this.completedCount++;
if (this.completedCount % 10000 == 0)
{
this.Print("Completed {0} requests.", true, this.completedCount);
}
}
}
}
/// <summary>
/// print usage of this program
/// </summary>
private void PrintUsage()
{
this.Print("usage: httpbench [options] <url>");
}
/// <summary>
/// print exception message to console
/// </summary>
private void PrintError(string msg, Exception ex = null, params object[] args)
{
StringBuilder sb = new System.Text.StringBuilder();
sb.Append("Error: ");
sb.AppendFormat(msg, args);
if (ex != null)
{
sb.Append("Exception: ");
sb.Append(ex.Message);
}
this.Print(sb.ToString());
}
/// <summary>
/// print to console
/// </summary>
private void Print(string msg, bool isLine = true, params object[] args)
{
if (isLine)
{
Console.WriteLine(msg, args);
}
else
{
Console.Write(msg, args);
}
}
}
}
and results:
IIS: httpbench.exe http://localhost/test
Completed 10000 requests.
Completed 20000 requests.
Completed 30000 requests.
Completed 40000 requests.
Completed 50000 requests.
Completed 60000 requests.
Completed 70000 requests.
Completed 80000 requests.
Completed 90000 requests.
Completed 100000 requests.
Total requests sent: 100000
Concurrent threads: 1000
Total completed requests: 100000
Failed requests: 0
Sum total of thread times (seconds): 97
Total time taken by this program (seconds): 16
Total bytes: 2000000
nodejs: httpbench.exe http://localhost:9090/
Completed 10000 requests.
Completed 20000 requests.
Completed 30000 requests.
Completed 40000 requests.
Completed 50000 requests.
Completed 60000 requests.
Completed 70000 requests.
Completed 80000 requests.
Completed 90000 requests.
Completed 100000 requests.
Total requests sent: 100000
Concurrent threads: 1000
Total completed requests: 100000
Failed requests: 0
Sum total of thread times (seconds): 234
Total time taken by this program (seconds): 27
Total bytes: 2000000
conclusion: IIS is faster than nodejs by about 2.5 times (on Windows). This is a very rudimentary test, and by no means conclusive. But I believe this is a good starting point. Nodejs is probably faster on other web servers, on other platforms, but on Windows IIS is the winner. Developers looking to convert their ASP.NET MVC to nodejs should pause and think twice before proceeding.
Updated (5/17/2012) Tomcat (on windows) seems to beat IIS hands down, about 3 times faster than IIS in dishing out static html.
tomcat
index.html at http://localhost:8080/test/
<p>hello, world!</p>
tomcat results
httpbench.exe http://localhost:8080/test/
Completed 10000 requests.
Completed 20000 requests.
Completed 30000 requests.
Completed 40000 requests.
Completed 50000 requests.
Completed 60000 requests.
Completed 70000 requests.
Completed 80000 requests.
Completed 90000 requests.
Completed 100000 requests.
Total requests sent: 100000
Concurrent threads: 1000
Total completed requests: 100000
Failed requests: 0
Sum total of thread times (seconds): 31
Total time taken by this program (seconds): 5
Total bytes: 2000000
updated conclusion: i ran the benchmark program multiple times. Tomcat appears to be the fastest server in dishing out STATIC HTML, ON WINDOWS.
Updated (5/18/2012) Previously I had 100,000 total requests with 10,000 concurrent requests. I increased it to 1,000,000 total requess and 100,000 concurrent requests. IIS comes out as the screaming winner, with Nodejs fairing the worst. I have tabularized the results below:
.

- 1,634
- 1
- 18
- 23
-
69You are comparing apples with cats. Compare Node.js with ASP.NET MVC. At most IIS is faster at serving static files, though I seriously doubt even that. – alessioalex May 17 '12 at 18:55
-
15@alessioalex : i dont understand why this comparison is not valid. i'm comparing the response times for static html. IIS is dishing out static html from default.htm, while nodejs server is dishing out the same string, and IIS comes out ahead. Comparing an ASP.NET MVC application would require more effort and time, and I'm planning to do it later. – Shankar May 17 '12 at 19:56
-
2@alessioalex: i followed your twitter link: https://gist.github.com/2652991 and modified the node server to read the default.htm file from the disk, cache it and then serve it (because thats what IIS does). the performance of node became worse: the sum total of thread times now came out as 264 seconds. – Shankar May 17 '12 at 20:24
-
31Ok, say that IIS is better at serving static files on Windows than Node. IIS only serves static files and such (like Apache or NGINX), Node does much more than that. You should be comparing ASP.NET MVC with Node (querying the database, retrieving data from an external service, etc etc). You'll see huge performance gains with Node over ASP.NET MVC. – alessioalex May 18 '12 at 08:40
-
1Did you run one node instance per hardware thread on your machine? – Matt Dotson Jun 16 '12 at 01:39
-
@MattDotson i have dual core cpu with hyper threading enabled, so it comes to 4 threads. are you saying that i should run 4 instances of nodejs? how would i bind them to the same port? – Shankar Aug 17 '12 at 18:45
-
7@alessioalex in this example node isn't even parsing the request, meaning that IIS is doing way more and still 2.5x faster... – fabspro Dec 25 '12 at 05:09
-
31If you are going to do this, please at least understand the nature of node. One Node process can only use a single core. So, what you are comparing is a node process running on one core to an IIS and tomcat process using multiple cores. In order to properly compare, you need to run node clustered. See http://nodejs.org/api/cluster.html for a simple to use cluster solution. However, I can tell you from experience, the difference between node and async c# is 10-15% either way depending upon what you're doing. – AlexGad Feb 20 '13 at 13:49
-
17Also, testing static files with node and IIS and Tomcat is meaningless. First of all, node is not great for static files, but its not really meant to be (use the right tool for the right job). If someone is worried about the speed of their static files, they should be using a CDN anyway. – AlexGad Feb 20 '13 at 13:53
-
@AlexGad Clustering is still marked as experimental. Are you sure that's "the right tool for the job"? – Wayne Bloss Feb 02 '14 at 12:14
-
1
-
HttpListener is the equivalent of the node web server, not IIS. Both are similar in terms of performance. If I had to guess then HttpListener would edge out node slightly. – Rush Frisby May 22 '15 at 20:06
-
2faster != productivity, maintenance, loosely coupling, unit test-ability etc. – Teoman shipahi Aug 13 '15 at 14:06
-
6node.js is a server. ASP MVC is a framework. Comparing Express.js or one of its descendants and ASP MVC would be accurate. Comparing IIS and node is accurate. – Sava B. Jul 26 '16 at 20:16
-
I'm not sure you are or this is testing anything meaningful, but here is a small Node.js test using clustering I tried. You'll need to npm nanotimer. https://gist.github.com/peheje/248bde863998f97c6de17d0ccadfbbed In my tests 1e6 req. took 350s for client. – Peheje Apr 04 '17 at 21:18
-
I agree with @AlexGad, you need to make use of the cluster module in node js and run this test again. – Lanklaas Aug 24 '17 at 12:28
-
-
And just look at how many lines of code it took to wrote a hello world on node.js vs . net, the node.js app fits inside the import block of the .net app. There is something to be said about code complexity with writing your backend in .net. – SacWebDeveloper Jun 15 '21 at 19:34
NIO servers (Node.js etc) tend to be faster than BIO servers. (IIS etc). To back my claim, TechEmpower is a company specialized on web framework benchmarks. They are very open and have a standard way of testing all framewrks.
Round 9 tests are currently the latest (May 2014). There are many IIS flavors tested, but aspnet-stripped seems to be the fastest IIS variant.
Here are the results in responses per second (higher is better):
- JSON Serialization
- nodejs:
228,887
- aspnet-stripped:
105,272
- nodejs:
- Single Query
- nodejs-mysql:
88,597
- aspnet-stripped-raw:
47,066
- nodejs-mysql:
- Multiple Queries
- nodejs-mysql:
8,878
- aspnet-stripped-raw:
3,915
- nodejs-mysql:
- Plain Text
- nodejs:
289,578
- aspnet-stripped:
109,136
- nodejs:
In all cases, Node.js tends to be 2x+ faster than IIS.
-
2Except on the Multiple Queries test, where ASPNET has two entries (aspnet-stripped-raw and aspnet-mysql-raw) that both beat nodejs-mysql, which is the top njs entry. – GalacticCowboy Dec 30 '14 at 18:27
-
4Well, Multiple Queries test is not exactly testing the server speed. It is mainly testing the MySQL driver speed. NodeJS mainly uses NO-SQL databases like MongoDB, CouchDB. MySQL driver might not be optimized. Json serialization and Plaintext tests tend to give the pure server speed - I'd trust them more. – ttekin Feb 02 '15 at 22:54
-
what if I use IIS node? is my performance will degrade or will be same. – Umashankar Aug 30 '18 at 05:36
-
12Thanks for the link to the benchmark page. The answer however could need an update, things may have changed quite a bit with the advent of .NET Core 2.1. For example, the 2018 JSON serialization benchmark lists ASP.NET Core at 971,122 requests/sec and Node.js at 561,593 requests/sec, so today ASP.NET Core would appear to be nearly twice as fast as Node.js in that respect. – stakx - no longer contributing Dec 26 '18 at 12:22
-
5As the round 20 (2021-02-08), asp.net core is way faster than node.js – Jeff Chen Nov 25 '21 at 04:38
I have to agree with Marcus Granstrom the scenario is very important here.
To be honest it sounds like you’re making a high impact architectural decision. My advice would be to isolate the areas of concern and do a "bake off" between whatever stacks you are considering.
At the end of the day you are responsible for the decision and I don’t think the excuse "Some guy on Stackoverflow showed me an article that said it would be fine" Will cut it with your boss.

- 615
- 3
- 9
-
1I'm looking for something to convince people (including my boss) it's worth considering as an alternative to an MVC.net website, not to convince them we should swap. All I've found so far is anecdotal mentions that it can support more load and performs better. Has anyone actually proved this? – David Merrilees Feb 17 '12 at 10:56
-
21But what is wrong with the MVC website? WHY are you trying to find an alternative? That is the most important Q. If the problem is it is dog slow under heavy concurrent load, then you should make sure you are using async.net. If it is still really slow, then you need to break down your code and figure out where your bottlenecks are. In my experience, there is not a massive different between node and async net in REAL WORLD scenarios. You can change your platform, but you will likely simply change one set of code bottlenecks/headaches for another set of code bottlenecks/headaches. – AlexGad Feb 20 '13 at 13:56
-
1I just realized this was written in 2012. Well, almost 10 years later, Node.js has taken the world by storm. Fullstack development no longer requires mastering two languages. For comparison, I used to be a PHP fullstack engineer, now I'm a Fullstack Engineer using TypeScript in back and front. Scaling Node.js is easy and SSR of our React frontend is dead simple. – SacWebDeveloper Jun 15 '21 at 19:42
Main difference what I see is that node .js is dynamic programming language (type checking), so the types must be at run-time derived. The strongly typed languages like C# .NET has theoretically much more potential wins the fight against Node .js (and PHP etc.), especially where is expensive calculation. By the way the .NET should have better native interoperation with C/C++ than node .js.

- 563
- 8
- 14
-
5Your suggestion that the "weak" typing in JS slows it down is wrong and irrelevant and regardless, that's comparing Apples and Stones (even Oranges would be more similiar than what you're suggesting). – rainabba Nov 01 '13 at 22:07
-
10@rainabba When you compare computation of some kind (e.g. fibonacci of x) he is completely correct. – Stan Dec 02 '13 at 19:44
-
6@steve Actually, given Z, you still cannot say that because JS is a language and .Net is a framework. They are completely different things. .Net runtimes are compiled for a particular processor architecture and so you can't change the performance of a particular chunk of code significantly for a single piece of hardware. As V8 has shows, JS can be interpreted and executed and extremely varying speeds and there's no reason to think that one day your fibonacci code written in JS won't run JUST as fast as with code run through the CLR (likely, it will be faster). Apples and Stones; as i said. – rainabba Dec 03 '13 at 21:15
-
1may be you are right, but in my sight, I don't know other countries, in china, many many programers I interviewed just known EF or Linq to Sql, these frameworks reduce .net's performance significantly – dexiang Nov 09 '15 at 14:50
-
1Same thing can be said to JS. while JS is catching up on fibonacci, do you really think that .NET will remain where it is waiting? – quanben May 01 '17 at 22:47