Xamarin的什么.iOS在将c#编译为本机代码时,会使用内存管理
本文关键字:管理 内存 本机代码 什么 iOS 在将 编译 Xamarin | 更新日期: 2023-09-27 18:08:11
什么Xamarin。iOS在内存管理方面做了什么?在通常的IL中,我们有垃圾收集器,它负责处理未使用的对象,并使程序员不必调用delete。当Xamarin将代码编译为本机时,这是如何工作的?谁来清理不再使用的物品?
这个问题回答了编译是如何工作的,但没有解释内存管理部分:MonoTouch是如何工作的?
你所寻找的答案已经给出了。
总之,il到本机的转换过程是提前完成的,但是Mono运行时的其他部分仍然是必需的。JIT编译只是运行时执行的任务之一,而且这一特定部分与iOS的内存限制不兼容(可写内存页也不能执行,而这是JIT工作所必需的)。据我所知,这就是为什么需要提前(AOT)编译的唯一原因。
Mono垃圾收集器确实在iOS上运行,它只是嵌入到Monotouch编译器生成的二进制文件中。生成的二进制文件包含aot编译的应用程序代码以及您使用的aot编译的库版本,和Mono运行时的精简版本。