The Complete Magazine on Open Source

Microsoft’s .Net Core 2.0 to optimise coding on Linux

.Net Core 2.0 with PGO on Linux

Ahead of releasing its new version, Microsoft has announced that .Net Core 2.0 will bring profile-guided optimisation (PGO) to Linux x64 systems. The latest development was a part of .Net Framework on Windows for past several years and was debuted on the Windows version of .Net Core 1.1.

PGO, developed as a native compilation technology for the C++ compiler to generate code at a faster running rate, comes with a two-step process. This helps developers to execute and generate optimised code for the available hardware.

Specifically for the Linux environment, PGO is designed to bring parity of performance. Deploying the optimisation on the open source version was harder than on Windows. The development team was required to work on the compiler toolchains that are different on each Linux distribution. Similarly, they need to consider each different version of a tool such as LLVM that can degrade PGO.

“A simplifying factor on Linux is that we are now building a unique ‘Linux’ version of .Net that we are then packaging into native installers and tarballs. This made it possible to apply the PGO optimisations to all the distributions that consume those common bits with reduced complexity,” explains Bertrand Le Roy, a program manager for .Net, Microsoft, in a blog post.

Preview build available for testing

Developers can test a preview build of .Net Core 2.0 on their Linux systems today. However, the latest PGO development is initially limited to internal native-compiled components of the runtime and JIT compilation. Managed applications on the framework will receive the optimisation support without any prior installation.