The Xamarin Cross-Platform Performance Documentation states:
When SGen starts a garbage collection, it will stop the application’s threads while it reclaims memory.
I'm wondering about a few details:
- I very much assume this applies to Xamarin.iOS? Is this correct?
- Does this apply to the whole application? That is, also the unmanaged side?
- Is the native ui thread stopped as well?
- Are unmanaged threads stopped as well? E.g. threads created by a native library which is wrapped via P/Invoke?
- Do all collections (minor and major) stop the threads? Or does this only apply to major collections?
- Just in case: Has the behaviour changed in the last year?
- Reason for this last question: Alongside the current stable release of Xamarin iOS, we are using Cycle 6 Service Release 4 for bugfixes for an older product. On both toolchain versions, we are developing unified applications using the SGen garbage collector.