Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Mono: SGen GC And Other Improvements; PlayScript, CppSharp In Works

Mono: SGen GC And Other Improvements; PlayScript, CppSharp In Works

This item in japanese

Lire ce contenu en français

Mono 3.2 was released last month with several GC improvements, dev improvements and more. Several other items such as PlayScript integration and CppSharp are already work-in-progress.

SGen GC has been further improved in Mono 3.2, especially for following scenarios –

  • Popular object workload where a few pinned nursery objects are very popular with old generation objects, causing a lot of remembered sets to be created. To avoid that, popular objects are made immortal until the next major collection
  • Massive Thread stack workload where a lot of threads with big stacks need to be conservatively scanned. This used to put a lot of pressure on the pinning stage since it would produce very big pin queues. To avoid that, SGen now employs hash filtering on pin queues and that dramatically reduce their average size and it pins major blocks instead of individual objects

In addition, Major Collector can now be disabled in certain places where low-latency code is needed.

SGen is now the default GC for mono.

There are also some Dev-time improvements for mobile developers –

  • Better iOS development with incremental builds and incremental uploads
  • Size reduction by disabling certain features to reduce mobile footprint

The availability of frameworks on Mono has been improving. For some time now, Mono has been shipping various .NET frameworks open-sourced by Microsoft. It now supports –  

along with some others –

Miguel de Icaza also presented a few work-in-progress items in the MonkeySpace conference last month –

  • PlayScript was created by Zynga to deliver games than run on both mobile and web simultaneously without having to do a full-port. The PlayScript compiler was built on mono. The mono team is now working on integrating these changes upstream
  • C++ Interop story is being pushed by both

You can find more details in the presentation “What is new in Mono?” as well as in the Mono 3.2 release notes.

Rate this Article