微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Xamarin.iOS在将C#编译为本机代码时对内存管理做了什么?

什么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运行时的精简版本.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐