什么Xamarin.iOS关于内存管理?使用通常的IL,我们有
垃圾收集器,它处理未使用的对象和浮雕程序员
调用删除.当Xamarin将
代码编译为本机时,这是如何工作的?谁清理了不再使用的物体?
这个问题回答了编译的工作原理,但没有解释内存管理部分:How MonoTouch works?
answer you seek是关于您
链接的问题.
总而言之,IL-to-native翻译过程是提前完成的,但仍然需要Mono运行时的其他部分. JIT编译只是运行时执行的任务之一,而且这个特定的部分与iOS的内存限制不兼容(可写的内存页也不能执行,这是JIT运行所必需的).这就是AFAIK,是完全需要提前编译(AOT)的唯一原因.
Mono垃圾收集器确实在iOS上运行,它只是嵌入到Monotouch编译器生成的二进制文件中.生成的二进制文件包含您的AOT编译的应用程序代码以及您使用的库的AOT编译版本,以及Mono运行时的精简版本.