专栏首页arxiv.org翻译专栏在元跟踪编译框架中合并不同的编译(CS SE)
原创

在元跟踪编译框架中合并不同的编译(CS SE)

大多数虚拟机采用即时编译器来实现高性能。基于跟踪的编译和基于方法的编译是JIT编译器中两种主要的编译策略。一般来说,前者擅长编译方法调用更深入、分支更动态的程序,而后者适用于范围更广的程序。以前的一些研究表明,每种策略都有其优缺点,没有明确的赢家。

在本文中,我们提出了一种新的方法,即元混合JIT编译策略。它结合了基于跟踪和基于方法的编译,以利用两种策略的优势。而且实现为元JIT编译器框架;因此,我们可以用一个混合的JIT编译器生成一个虚拟机,只需要用我们的框架编写一个解释器就可以应用不同的程序部分。

我们选择扩展一个元跟踪JIT编译器,并支持它的两个编译。作为一个原型,我们遵循RPython的体系结构,在MinCaml编译器的基础上实现了一个简单的元跟踪JIT编译器框架BacCaml。

我们通过用BacCaml创建一种小型函数式编程语言并运行微基准程序来评估它的性能。此外,我们进行了一个合成实验,以确认有混合编译运行更快的程序。

原文题目:Amalgamating Different JIT Compilations in a Meta-tracing JIT Compiler Framework

原文:Most virtual machines employ just-in-time (JIT) compilers to achieve high-performance. Trace-based compilation and method-based compilation are two major compilation strategies in JIT compilers. In general, the former excels in compiling programs with more in-depth method calls and more dynamic branches, while the latter is suitable for a wide range of programs. Some previous studies have suggested that each strategy has its advantages and disadvantages, and there is no clear winner.

In this paper, we present a new approach, namely, the meta-hybrid JIT compilation strategy. It combines tracebased and method-based compilations to utilize the advantages of both strategies. Moreover, it is realized as a meta JIT compiler framework; thus, we can generate a VM with a hybrid JIT compiler that can apply different program parts by merely writing an interpreter with our framework. We chose to extend a meta-tracing JIT compiler and supported the two compilations on it. As a prototype, we implemented a simple meta-tracing JIT compiler framework called BacCaml based on the MinCaml compiler by following RPython’s architecture.

We evaluated its performance by creating a small functional programming language with BacCaml and running microbenchmark programs. Furthermore, we performed a synthetic experiment to confirm that there are programs that run faster by hybrid compilation.

原文作者:Yusuke Izawa,Hidehiko Masuhara

原文链接:https://arxiv.org/abs/2011.03423

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 配对市场中的强盗:同业拆借的想法和建议(CS CSGT)

    受最近顺序决策在匹配市场中的应用的启发,本文试图对同业拆借市场的设计进行公式化和抽象化。在本文的其余部分,接下来将是一个范例,为如何从匹配的市场角度构思同行贷款...

    识檐
  • 使双臂机器人实现自我意识(CS AI)

    虽然人类意识到自己的身体和能力,但机器人却没有。为了解决这个问题,我们在本文中提出了一种神经网络架构,使双臂机器人能够在环境中获得自我感觉。我们的方法受到人类自...

    识檐
  • 面向低资源语言的情感分析器(CS AI)

    Twitter是最受影响的社交媒体之一,拥有数百万活跃用户。它通常用于微博,允许用户分享消息、想法、想法等。因此,数以百万计的互动,如短信或推特,在推特用户之间...

    识檐
  • 数据库PostrageSQL-什么是JIT编译?

    即时(Just-In-Time,JIT)编译是将某种形式的解释程序计算转变成原生程序的过程,并且这一过程是在运行时完成的。例如,与使用能够计算任意SQL表达式的...

    cwl_java
  • 腾讯云自研数据库CynosDB存储架构揭秘

    企业IT系统迁移到公有云上已然是正在发生的趋势。数据库服务,作为公有云上提供的关键组件,是企业客户是否愿意将自己运行多年的系统搬到云上的关键考量之一。另一方面,...

    腾讯云数据库 TencentDB
  • “扔瓶子”有套路?日本高中生开发机器人,手残党们有救了

    没想到始于 2016 年的一款扔瓶子游戏,竟到如今还流行在(视频中的)街头巷尾,得到不少年轻人的追捧。

    AI科技大本营
  • 推荐 ▏小谷真由美:与工业机器人共舞的商界女强人

    当有信精机(Yushin Precision Equipment)的总裁小谷真由美(Mayumi Kotani)走进房间进行产品展示推销时,日本工厂机器人产品的...

    机器人网
  • Fastjson究竟犯了哪些错?

    安全行业的支柱fastjson究竟犯了哪些错?没有cve编号著作权法规问题漏洞奖励的难处开源项目的生意经结语

    Ramos
  • 想造出来《星际穿越》中机器人Tars,还有哪些难题?

    这个叫Tars,看着像冰箱门,又像四根不锈钢筷子拼成的机器人,是《星际穿越》里人气最高的角色。主角们来到第一个星球,海啸到来来时,是Tars救了安妮-海瑟薇。当...

    机器人网
  • 这家初创公司让你在Adobe Premiere里用AI作曲

    唐旭 编译整理 量子位·QbitAI 出品 以后你可能不再需要任何乐器或麦克风,只要在浏览器上点击几下,就能创作出一首听上去还不错的歌。昨天,致力于为人们提供...

    量子位

扫码关注云+社区

领取腾讯云代金券