While the first day of Build 2014 conference brought information about upcoming releases of Windows and Windows Phone, day two demonstrated that .NET is still relevant in the world of devices, services and apps. Roslyn, an open-sources C#/VB compiler, and .NET Foundation received enough attention in the conference reviews unlike three technical announcements – .NET Native, RyuJIT and SIMD processor instructions support – that are intended to make .NET applications faster.
.NET Native is a set of tools to compile C# application to native code. It allows bypassing traditional step of intermediate language (IL) code translation during run-time and improves application’s performance. According to Microsoft, popular Windows Store apps start up to 60% faster and use 15-20% less memory when compiled with .NET Native.
Additional benefits of .NET Native are code obfuscation and simplified deployment. Compiled application does not include IL code and cannot be decompiled as simply as traditional .NET application. It also include all required parts of the target .NET framework and does not require .NET on user’s system.
Currently .NET Native is in a preview state and available for Windows Store apps only, may become available for desktop applications later.
RyuJIT is a brand new x64 .NET JIT compiler that was created to make .NET application compilation faster. Available as a Community Preview, it already demonstrates better performance, less memory usage and faster startup for .Net applications. CTP version is limiter to x64 architecture and may have some issues, but in the future RyuJIT will become a single JIT compiler for .NET. It is a good time to test it by yourself!
Single instruction, multiple data (SIMD) set of processor instructions allows to apply the same operation to multiple data items simultaneously. For 3D, scientific and other calculation-intensive applications, these instructions can bring significant performance improvements. While SIMD instructions supported in Intel’s processors since Pentium 3, .NET applications was not able to benefit from this feature so far.
With introduction of RyuJIT, Microsoft also announced availability of SIMD support for .NET, implemented using Microsoft.Bcl.Simd NuGet package.
NuGet package: http://www.nuget.org/packages/Microsoft.Bcl.Simd
Code sample: http://code.msdn.microsoft.com/SIMD-Sample-f2c8c35ablog comments powered by Disqus