Search code examples
monogarbage-collectionjitaot

Mono AOT compiled executable and GC


Mono can be compiled to native AOT executable using mkbundle. My question is, how is the garbage collection works? If I compile Mono into AOT executable, should I make modification in the codes, to release unused variables / objects ?


Solution

  • Roughly speaking, after AOT compilation your application no longer needs JIT at runtime, but you still get GC and almost everything CLR offers except some part of reflection (Emit related).

    Limitations are documented in http://www.mono-project.com/AOT

    You don't need to modify your code generally except you need to remove anything that AOT does not support.

    References:

    http://tirania.org/blog/archive/2006/Aug-17.html

    http://tirania.org/blog/archive/2008/Nov-05.html

    Miguel has other posts on AOT details too.