Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Mono JIT, GC Get Better

Mono JIT, GC Get Better

This item in japanese

Lire ce contenu en français

Mono 3.2.7 is out, with a lot of new features such as an improved JIT, new interpreter for LINQ, use of native instructions for 64 bits, and more.

This is a major feature release, accumulating about 5 months of development. Most improvements seem to be under-the-hood performance improvements, optimizations and better compatibility. Some of the highlights -

  • Initial support for the HardFP ABI (Application Binary Interface) on ARM. This enables mono to be used on more recent versions of linux and produce better code on those targets. Read more to understand the difference between HardFP and SoftFP.
  • The ABCREM (array bound checks removal) optimization now works much better on 64 bit systems
  • Two new optimizations - a Loop Invariant Code Motion pass and Alias Analysis. Can lead upto 20% performance gains in some functions
  • 64-bit CAS instructions now supported on 32 bit systems leading to significant boost on PLINQ workloads with multi core.
  • More recent version of LLVM is used, and it can now generate fast TLS (Thread Local Storage) access
  • Micro-optimizations for the GC - optimizations in internal data structures and use of intrinsics to speed up core loops
  • An interpreter for LINQ and dynamic statements that can be used by FullAOT runtimes
  • Better support for custom task schedulers with task awaiters
  • Significantly improved reachability and flow analysis in the C# compiler - this leads to better code warnings

The release also includes several bug fixes. To see a full list of improvements, have a look at the release notes

Rate this Article