Fast and precise hybrid type inference for JavaScript
Fast and precise hybrid type inference for JavaScript
复制标题
JavaScript 的快速、精确的混合类型推理
DOI:
10.1145/2254064.2254094
复制
发表时间:
2012
期刊:
影响因子:
--
通讯作者:
Shu
中科院分区:
文献类型:
--
作者:
Brian Hackett;Shu
JavaScript performance is often bound by its dynamically typed nature. Compilers do not have access to static type information, making generation of efficient, type-specialized machine code difficult. We seek to solve this problem by inferring types. In this paper we present a hybrid type inference algorithm for JavaScript based on points-to analysis. Our algorithm is fast, in that it pays for itself in the optimizations it enables. Our algorithm is also precise, generating information that closely reflects the program's actual behavior even when analyzing polymorphic code, by augmenting static analysis with run-time type barriers. We showcase an implementation for Mozilla Firefox's JavaScript engine, demonstrating both performance gains and viability. Through integration with the just-in-time (JIT) compiler in Firefox, we have improved performance on major benchmarks and JavaScript-heavy websites by up to 50%. Inference-enabled compilation is the default compilation mode as of Firefox 9.