BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Mono 2.2有了新的线性代码生成引擎

| 作者 Abel Avram 关注 10 他的粉丝 ,译者 郭晓刚 关注 0 他的粉丝 发布于 2009年1月28日. 估计阅读时间: 1 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

直到现在Mono的代码生成引擎都是基于树状的代码中间表现形式(Intermediate Representation,IR)。Mono 2.2版有了一个基于线性IR的新引擎,大大改善了速度和代码大小。

Miguel de Icaza说,原先树状的IR导致“很难有效改进代码生成及扩展JIT引擎”。新的线性IR有助于“寄存器分配程序更好地了解寄存器的使用状况,从而在生成代码的时候更好地决策”。

线性IR的开发工作始于2005年末。工作一直在进展,但Mono团队不想把新引擎放进Mono 2.0版,因为牵涉到的工作实在是太多了。现在随着2.2版发布,Mono终于用上了新引擎。

新引擎的巨大成效从基准测试结果可见一斑:

速度:计算密集的代码会从新引擎得益较多,一般有10%到30%的性能提升,某些情况下最高可提速50%。

代码大小:新引擎产生的代码更紧凑,一般可缩小12%到20%。

想了解新引擎技术细节的读者请参阅Mono的网站。 2.2版发布说明上提到以下主要改进:性能提升、支持完全的提前编译、支持通过PerformanceCounters监控、支持运行时动态挂载代码(attaching code live)、支持SIMD,不一而足。

查看英文原文:Mono 2.2 Has a Linear Code Generation Engine

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT