首页> 外文期刊>ACM SIGPLAN Notices: A Monthly Publication of the Special Interest Group on Programming Languages >On the Benefits and Pitfalls of Extending a Statically Typed Language JIT Compiler for Dynamic Scripting Languages
【24h】

On the Benefits and Pitfalls of Extending a Statically Typed Language JIT Compiler for Dynamic Scripting Languages

机译:扩展用于动态脚本语言的静态类型语言JIT编译器的好处和陷阱

获取原文
获取原文并翻译 | 示例
       

摘要

Whenever the need to compile a new dynamically typed language arises, an appealing option is to repurpose an existing statically typed language Just-In-Time (JIT) compiler (repurposed JIT compiler). Existing repurposed JIT compilers (RJIT compilers), however, have not yet delivered the hoped-for performance boosts. The performance of JVM languages, for instance, often lags behind standard interpreter implementations. Even more customized solutions that extend the internals of a JIT compiler for the target language compete poorly with those designed specifically for dynamically typed languages. Our own Fiorano JIT compiler is an example of this problem. As a state-of-the-art, RJIT compiler for Python, the Fiorano JIT compiler outperforms two other RJIT compilers (Unladen Swallow and Jython), but still shows a noticeable performance gap compared to PyPy, today’s best performing Python JIT compiler. In this paper, we discuss techniques that have proved effective in the Fiorano JIT compiler as well as limitations of our current implementation. More importantly, this work offers the first in-depth look at benefits and limitations of the repurposed JIT compiler approach. We believe the most common pitfall of existing RJIT compilers is not focusing sufficiently on specialization, an abundant optimization opportunity unique to dynamically typed languages. Unfortunately, the lack of specialization cannot be overcome by applying traditional optimizations.
机译:每当需要编译新的动态类型语言时,一个吸引人的选择就是重新利用现有的静态类型语言即时(JIT)编译器(重新设计的JIT编译器)。但是,现有的重新用途的JIT编译器(RJIT编译器)尚未实现希望的性能提升。例如,JVM语言的性能通常落后于标准解释器实现。甚至更多针对目标语言扩展JIT编译器内部的定制解决方案与专门针对动态类型语言设计的解决方案之间的竞争也很差。我们自己的Fiorano JIT编译器就是此问题的一个示例。作为最先进的Python RJIT编译器,Fiorano JIT编译器的性能优于其他两个RJIT编译器(Unladen Swallow和Jython),但与当今性能最佳的Python JIT编译器PyPy相比,仍然表现出明显的性能差距。在本文中,我们将讨论已证明在Fiorano JIT编译器中有效的技术以及当前实现的局限性。更重要的是,这项工作首次深入探讨了重新设计的JIT编译器方法的优点和局限性。我们认为,现有RJIT编译器最常见​​的陷阱是没有充分关注专业化,而专业化是动态类型语言所独有的丰富优化机会。不幸的是,专业化的缺乏不能通过应用传统的优化方法来克服。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号