Mono 3.2.7发布,JIT和GC进一步改进

时间:2022-06-20 19:25:49

Mono 3.2.7已经发布,带来了很多新特性,如改进的JIT、新的面向LINQ的解释器以及使用了64位原生指令等等。

这是一次主要特性发布,累积了大约5个月的开发工作。看上去大部分改进都是底层的性能改进、优化以及更好的兼容性。以下是一些值得重点强调的特性:

  • 对ARM上的HardFP ABI(Application Binary Interface,应用程序二进制接口)提供了初步支持。这就使得Mono可以应用于更新的Linux版本上,同时可以针对这些目标平台生成更好的代码。要进一步了解,可以阅读 HardFP与SoftFP的区别
  • 现在ABCREM(array bound checks removal)优化在64位系统上的表现改进了很多
  • 两类新的优化,移动循环不变式(Loop Invariant Code Motion)和别名分析(Alias Analysis)。在某些函数中可以带来20%的性能收益。
  • 64位CAS指令在32位系统上得到支持,极大地改进了PLINQ负载在多核平台上的表现。
  • 使用了更新的LLVM版本,现在可以生成快速TLS(Thread Local Storage,线程本地存储)存取
  • GC相关的微型优化——优化了内部数据结构,使用intrinsics来加速核心循环。
  • 可供FullAOT运行时使用的一个面向LINQ的解释器以及动态语句。
  • 通过task awaiters对定制任务调度器提供了更好的支持。
  • C#编译器中的可达性和流分析有了很大的改进,可以生成更好的警告信息。

该版本还包含了一些bug修复。改进的完整列表请参看发布说明

 

查看英文原文:Mono JIT, GC Get Better

查看中文原文:Mono 3.2.7发布,JIT和GC进一步改进