Mono:SGen GC 和其他方面的提升,PlayScript 和 CppSharp 正在开发中

阅读数:1265 2013 年 8 月 27 日

话题:语言 & 开发

Mono 3.2 已于上月发布,新版本在 GC 和开发等方面做了一些提升。而像PlayScript 集成和CppSharp 这样的项目则已经在开发中。

Mono 3.2 进一步提升了 SGen GC,特别是针对下面的场景——

  • 流行对象负载,老一代对象非常欢迎的一些固定新生对象会导致创建很多记忆的集合。为了避免这种情况的发生,流行对象会被作为永恒对象直到下一次主收集。
  • 大规模线程栈负载,这种情况下需要合理地扫描大量大堆栈线程。这在以前通常会把大量压力放到规划阶段,因为它会产生非常大的固定队列。为了避免这种情况,SGen 现在会在固定队列上使用哈希过滤,这大大降低了它们的平均大小,并且它会固定主要块而不是个别对象。

另外,在某些需要低延迟代码的地方现在还可以禁用主收集器。

SGen 现在是 mono 的默认 GC。

对于移动开发者而言,还有一些开发时间方面的提升——

  • 更好的 iOS 开发体验,支持增量构建和增量上传
  • 通过禁用某些特性减少移动踪迹的方式降低大小

Mono 上框架的获取体验也得到了提升。Mono 现在提供了多种由 Microsoft 开源的.NET 框架。它现在支持:

还有一些其他内容,包括:

在上个月的 MonkeySpace 会议上,Miguel de Icaza 还展示了一些正在开发中的项目:

  • PlayScript是由Zynga创建的,目的是为了交付能够同时在移动和 Web 环境中运行的游戏,而不需要做完整移植。PlayScript 编译器基于 mono 构建。Mono 团队现在正致力于集成这些上游变化。
  • C++ 互操作故事正在由两方面推动

你能够从幻灯片“Mono 包括哪些新特性”和 Mono 3.2 发布说明中找到更多相关的细节信息。

查看英文原文Mono: SGen GC And Other Improvements; PlayScript, CppSharp In Works