2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

  • 2009-01-27
  • 本文字数:484 字

    阅读完需:约 2 分钟

直到现在 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

2009-01-27 07:141812
用户头像

发布了 225 篇内容, 共 73.9 次阅读, 收获喜欢 52 次。

关注

评论

发布
暂无评论
发现更多内容

排序系列快排/内省

脚动两轮男之漂流小王子

排序系列堆/二分插入

脚动两轮男之漂流小王子

程序员的macOS系列:精选Mac App

iHTC

从每个Python文件快速得到项目根目录的绝对路径

良少

Python 路径 绿色

排序系列插入/希尔

脚动两轮男之漂流小王子

做一个好产品的初衷:用户值得

池建强

创业 产品 写作

macOS 查看文件内容常用的命令小结

iHTC

能够实现的想法才有价值

伯薇

创业 创意 点子 商业价值

第一次手动编译openjdk11

py ploughman

jdk

Centos 7 使用Firewalld

Kevin Liao

Centos 7 防火墙 Firewalld防火墙 Firewalld

排序系列bogo排序

脚动两轮男之漂流小王子

排序系列之选择/冒泡

脚动两轮男之漂流小王子

创业的使命是什么

Neco.W

创业 重新理解创业

python面向对象的魔法方法详解

半面人

Python

LeetCode 1396. Design Underground System

liu_liu

LeetCode

UITableView 手势延迟导致subview无法完成两次绘制

AlienJunX

程序员陪娃漫画系列——当她想吃的时候

孙苏勇

程序员 生活 陪伴 漫画

Centos 7 安装RabbitMQ(RPM)

Kevin Liao

RabbitMQ RPM安装

Centos7 编译安装Nginx

Kevin Liao

nginx 编译 安装

如何建立你自己的开发知识体系

iHTC

程序员的macOS系列:Mac开发环境配置

iHTC

我的编程之路-1(启蒙)

顿晓

编程 入门 启蒙 经历 故事

去掉美颜和滤镜后的数字货币

亨利笔记

比特币 区块链 数字货币 DCEP libra

在InfoQ上开博的第一天

罗琦

开博 文章链接

第三方支付概述

cf

支付 网联 备付金

排序系列计数/基数

脚动两轮男之漂流小王子

排序系列归并/timsort

脚动两轮男之漂流小王子

开张咯~

李绍俊

生活 随想

排序系列鸡尾酒/地精

脚动两轮男之漂流小王子

程序员的macOS系列:高效Alfred进阶

iHTC

leetcode8. 字符串转换整数 (atoi)

Damien

算法 数学

Mono 2.2有了新的线性代码生成引擎_.NET_Abel Avram_InfoQ精选文章