Preview

Труды Института системного программирования РАН

Расширенный поиск

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

https://doi.org/10.15514/ISPRAS-2015-27(6)-5

Аннотация

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

Об авторах

Роман Жуйков
ИСП РАН
Россия


Евгений Шарыгин
МГУ им. Ломоносова
Россия


Список литературы

1. Веб-страница описания реализации JavaScriptCore на веб-сайте разработчиков WebKit. http://trac.webkit.org/wiki/JavaScriptCore

2. Веб-сайт Webkit. http://www.webkit.org

3. Веб-сайт V8. https://code.google.com/p/v8/

4. S. Hong, J. Kim, J. W. Shin, S. Moon, H. Oh, J. Lee, H. Choi “Java client ahead-of-time compiler for embedded systems”, Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems, 2007, pp. 63-72

5. S. Hong, S. Moon “Client-Ahead-Of-Time Compilation for Digital TV Software Platform” 3rd workshop on Dynamic Compilation Everywhere preprint, 2013. http://sites.google.com/site/dynamiccompilationeverywhere/home/dce-2014/DCE-2014-Sunghyun-Hong-article.pdf

6. Р. Жуйков, Д. Мельник, Р. Бучацкий, В. Варданян, В. Иванишин, Е. Шарыгин. Методы динамической и предварительной оптимизации программ на языке JavaScript. // Труды Института системного программирования РАН Том 26. Выпуск 1. 2014 г. Стр. 297-314. DOI: 10.15514/ISPRAS-2014-26(1)-10

7. Описание стандарта ECMA-262. http://www.ecma-international.org/publications/standards/Ecma-262.htm

8. Веб-сайт языка asm.js. http://asmjs.org/

9. Веб-сайт “Are we fast yet?”. https://arewefastyet.com/

10. Веб-страница тестирования tramp3d. http://gcc.opensuse.org/c++bench/tramp3d/


Рецензия

Для цитирования:


Жуйков Р., Шарыгин Е. Методы предварительной оптимизации программ на языке JavaScript. Труды Института системного программирования РАН. 2015;27(6):67-86. https://doi.org/10.15514/ISPRAS-2015-27(6)-5

For citation:


Zhuykov R., Sharygin E. Аhead of time optimization for JavaScript programs. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2015;27(6):67-86. (In Russ.) https://doi.org/10.15514/ISPRAS-2015-27(6)-5



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


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