BT

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

DLR的适应性编译器

| 作者 Jonathan Allen 关注 595 他的粉丝 ,译者 赵劼 关注 5 他的粉丝 发布于 2009年10月8日. 估计阅读时间: 不到一分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

对于Python或Ruby等传统的脚本语言,动态语言运行时(DLR,Dynamic Language Runtime)在“热身”之后会有显著的性能提高。但对于仅仅执行一到两次的代码,编译表达式树所消耗的时间要远高于执行的开销。

为了解决这个问题,DLR引入了适应性编译器(Adaptive Compiler)。一般情况下,DLR会直接对表达式树进行解释执行,而不是对其进行编译。如果它发现这个表达式树需要反复使用,则会在后台线程中对其进行编译以备未来调用。据微软所言,这种做法让IronPython 2.6的启动性能有了显著提高。

由于这是DLR内部的技术,这个改进会体现在其上的任何动态语言中。

查看英文原文:The DLR’s Adaptive Compiler

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

DLR的适应性编译器 by shanlin jiang

这种技术与JVM当年的Just-In-Time有什么区别?

Re: DLR的适应性编译器 by Cai John

CLR也是JustInTime的,这根Adaptive Compiler是两个概念。这问题问的

Re: DLR的适应性编译器 by Shichao Liu

多次执行的编译划算,只执行一两次的干脆就不编译了,原文就是这意思。

允许的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通知我

3 讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT