Microsoft, finally released its new generation of .net framework named .NET Core on June 27th 2016. I believe, this version would be a turning point in .net development and would be a giant leap in .net stack.
The reason why I believe so, being the combination of C# language features and convenience of coding plus a significant improvement in the framework’s performance, as well as cross-Platform support for major operating systems like Windows, Linux and MacOS . Adding the open source code and potentially growing community to that, I believe it’s not just yet another .net version, but a foundation for a new powerful technology stack.
The benchmarks published on Github are showing exciting results :
Here is an example of benchmarks done on HTTP server, showing that .NET performs 3x faster than NodeJS!!! Which sounds unbelievable to me! Check out this comparative benchmark copied from the mentioned GitHub page :
Plain Text Performance benchmark
Similar to the plain text benchmark in the TechEmpower tests. Intended to highlight the HTTP efficiency of the server & stack. Implementations are free to cache the response body aggressively and remove/disable components that aren’t required in order to maximize performance.
|ASP.NET 4.6||perfsvr||57,843||32 threads, 256 connections||Generic reusable handler, unused IIS modules removed||CPU is 100%, almost exclusively in user mode|
|IIS Static File (kernel cached)||perfsvr||276,727||32 threads, 512 connections||hello.html containing “HelloWorld”||CPU is 36%, almost exclusively in kernel mode|
|IIS Static File (non-kernel cached)||perfsvr||231,609||32 threads, 512 connections||hello.html containing “HelloWorld”||CPU is 100%, almost exclusively in user mode|
|NodeJS||perfsvr||106,479||32 threads, 256 connections||The actual TechEmpower NodeJS app||CPU is 100%, almost exclusively in user mode|
|NodeJS||perfsvr2 (Linux)||127,017||32 threads, 512 connections||The actual TechEmpower NodeJS app||CPU is 100%, almost exclusively in user mode|
|ASP.NET Core on Kestrel||perfsvr||313,001||32 threads, 256 connections||Middleware class, multi IO thread||CPU is 100%|
|Scala – Plain||perfsvr||176,509||32 threads, 1024 connections||The actual TechEmpower Scala Plain plaintext app||CPU is 68%, mostly in kernel mode|
|Netty||perfsvr||447,993||32 threads, 256 connections||The actual TechEmpower Netty app||CPU is 100%|
To be honest, I can’t believe such a performance improvement yet, I need to touch it myself and do my own benchmark! I’ll be sharing my results and writing about it in the future.