Open
Description
All variables that are passed out of managed code are accessed as Local
references. This creates a heavy performance hit. A way to work around this is to instead of working with Local
's, optimize for not having to need them. The idea is that probably the garbage collector won't run when outside of managed code. If the garbage collector would run, instead of performing a run, allocate a temporary block of memory and allocate from there. When we come out of native code, check for such blocks, perform a collection and merge these blocks into the main garbage collected memory.