Abstract

In recent years, JavaScript has become one of the most popular programming languages on the web. Many massive applications are written using JavaScript, such as Gmail, Google docs, etc. JavaScript is also used in the Node.js - server-side web application developing platform. Moreover, JavaScript is the main language for developing applications on some operating systems for mobile and media devices. Examples of such systems are Tizen and FirefoxOS. Due to increasing popularity of JavaScript many big companies produced and continue to develop their own dynamic compilers for this language. JIT compilation makes it possible to implement many well-known classic optimizations to improve programs performance. To maintain a trade-off between quick startup and doing sophisticated optimizations, JavaScript engines usually use multiple tiers for compiling hot functions: lower tier JITs generate less efficient code, but can start almost immediately (e.g., even with interpretation), while higher tier JITs aim at generating very effective code for hot places, but at the cost of long compilation time. So even highly optimized JavaScript execution engines require some time to "warm-up" before reaching their peak performance. This work is dedicated to the performance improvement of modern dynamic multitier JIT compilers by designing and implementing profile-based optimizations in JavaScript V8 JIT compiler.

Highlights

  • JavaScript is used in the Node.js — server-side web application developing platform

  • JavaScript is the main language for developing applications on some operating systems for mobile and media devices

  • This work is dedicated to the performance improvement of modern dynamic multitier JIT compilers by designing and implementing profile-based optimizations in JavaScript V8 JIT compiler

Read more

Summary

Введение

В настоящее время широкое распространение получили программы на нетипизированных сценарных языках. Одним из повсеместно используемых языков является JavaScript. JavaScript также используется в платформе Node.js [1] для разработки веб-приложений на стороне сервера. Уже имеются разработки операционных систем для телефонов, планшетов и ноутбуков, которые подразумевают использование JavaScript как одного из основных языков для создания приложений. Многие современные реализации JavaScript используют технологию динамической компиляции (JIT-компиляция), что позволяет применять широкий класс оптимизаций и за счет этого достичь лучшей производительности. Затраченное на компиляцию, добавляется к общему времени выполнения. Такое решение обеспечивает быстрый запуск программы, начиная выполнение на неоптимизирующих уровнях компиляции. Наиболее часто исполняющиеся участки кода выполняются на оптимизирующих уровнях компиляции для генерации более качественного машинного кода. 2 приводится описание архитектуры компилятора V8 и примененные технологии (замена на стеке, спекулятивная компиляция и т.д.) для построения оптимизирующих многоуровневых JIT-компиляторов.

Архитектура V8
Обзор работ
Результаты
Findings
Заключение
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call