中文

编程语言Dino的实现——动态语言性能案例研究

编程语言 2016-04-06 v1

摘要

本文简要概述了编程语言Dino的现状,以了解其在其他动态编程语言中的地位。然后描述了当前实现、所用工具以及主要实现决策,包括如何实现一个稳定、可移植且简单的JIT编译器。我们研究了在x86-64、AARCH64和Powerpc64上主要实现决策对Dino性能的影响。简而言之,在x86-64上,从基于栈的虚拟机迁移到寄存器传输架构后,某个模型基准测试的性能提高了 3.1\textbf{3.1} 倍,通过添加字节码组合进一步提高了 1.5\textbf{1.5} 倍,通过使用JIT进一步提高了 2.3\textbf{2.3} 倍,通过执行带有字节码专门化的类型推断进一步提高了 4.4\textbf{4.4} 倍,总体性能提升约 47\textbf{47} 倍。为将这些结果置于背景中,我们包括了Dino与上述三个平台上广泛使用的Ruby、Python 3、PyPy和JavaScript实现的性能比较。本文的目标是与其他动态语言实现者分享Dino实现经验,希望有助于他们改进流行动态语言的实现,使其可能更快、更可移植,使用更少的开发者资源,并可能避免Dino开发过程中经历的一些错误和错误方向。

关键词

引用

@article{arxiv.1604.01290,
  title  = {Implementation of the Programming Language Dino -- A Case Study in Dynamic Language Performance},
  author = {Vladimir N. Makarov},
  journal= {arXiv preprint arXiv:1604.01290},
  year   = {2016}
}

备注

10 pages, 1 figure, 4 tables