MonoTouch 6.0.8 发行说明中的​​“运行时蹦床”是啥意思?

Posted

技术标签:

【中文标题】MonoTouch 6.0.8 发行说明中的​​“运行时蹦床”是啥意思?【英文标题】:What do "Runtime Trampolines" mean in MonoTouch 6.0.8 Release Notes?MonoTouch 6.0.8 发行说明中的​​“运行时蹦床”是什么意思? 【发布时间】:2012-12-06 06:56:37 【问题描述】:

MonoTouch 6.0.8 release notes说:

运行时蹦床:不再需要在 Mono 运行时手动管理蹦床,现在可以动态处理蹦床。

这是什么意思?无论如何,您如何手动管理蹦床? 当您知道自己可能会用完蹦床时,是否还需要添加编译器标志?

【问题讨论】:

【参考方案1】:

这意味着正如发行说明所说,Monotouch 现在计算出要分配多少蹦床。

要添加更多蹦床,请添加编译器标志,例如:

-aot "nrgctx-trampolines=4096" -aot "nimt-trampolines=4096" -aot "ntrampolines=4096"

通常,当您用完蹦床时,意味着您使用了大量的泛型和接口,很难计算需要提前分配多少内存 (aot)。所以 Xamarin 一定找到了一种神奇的方法来进行这种计算并相应地分配蹦床。我找不到有关此的更多信息。

关于蹦床的更多信息一般在这个帖子中:http://forums.xamarin.com/discussion/503/trampolines-cost 和这个帖子之前的帖子:http://lists.ximian.com/pipermail/monotouch/2012-March/008800.html

【讨论】:

从我的阅读中,我有一个印象,预先静态确定蹦床的数量太难了。我很高兴能从 Xamarin 团队那里听到一些关于自那以后发生的变化的细节! 一个小说明:我们不计算需要多少蹦床并预先分配它们,这将是一个非常大的数字(假设可以正确枚举它们),因此它会增加二进制大小相当多。相反,我们使用内存管理技巧,允许我们在运行时按需分配尽可能多的蹦床。无论应用程序需要多少蹦床,二进制大小的开销现在都是固定的(通常为 8-12KB)。在大多数情况下,运行时内存使用量也较低。

以上是关于MonoTouch 6.0.8 发行说明中的​​“运行时蹦床”是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

在 GIT 中的 Rep. 中生成发行说明

MonoTouch 中的 ViewForZoomingInScrollView

MonoTouch 中的自定义 UITableViewCell

MonoTouch 中的弱事件模式

Monotouch中的自定义UITabBar

在模拟器和设备上运行 monotouch 有啥区别?