Сборники трудов ИСП РАН


Методы предварительной оптимизации программ на языке JavaScript

Жуйков Р.А. (ИСП РАН, Москва), Шарыгин Е.Ю. (МГУ, Москва)

Аннотация

Современные виртуальные машины для языка JavaScript используют многоуровневую компиляцию во время выполнения для создания машинного кода. При компиляции во время выполнения нецелесообразно выполнение сложных оптимизаций. Статическая компиляция, наоборот, имеет неограниченные возможности для выполнения сложных оптимизационных преобразований, но не может эффективно применяться к динамическим языкам, таким как JavaScript. В данной работе предлагается общий подход к предварительной компиляции программ на динамических языках, а также применение этого подхода для улучшения двух виртуальных машин — JavaScriptCore и V8. При реализации улучшенной виртуальной машины JavaScriptCore c использованием предварительной компиляции была учтена специфика использования JavaScript программ в составе локально хранящихся приложений для платформы ARM. Для виртуальной машины V8 для платформы x86 64 в рамках исследования предварительная компиляция была реализована с помощью кэширования в отдельный файл одного из оптимизированных внутренних представлений.

Ключевые слова

оптимизация программ; JavaScript; компиляция во время выполнения; предварительная компиляция; Webkit JavaScriptCore; виртуальная машина V8

Издание

Труды Института системного программирования РАН, том 27, вып. 6, 2015, стр. 67-86.

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2015-27(6)-5

Полный текст статьи в формате pdf Вернуться к содержанию тома