Proceedings of the Institute for System Programming of the RAS
RUS  ENG    JOURNALS   PEOPLE   ORGANISATIONS   CONFERENCES   SEMINARS   VIDEO LIBRARY   PACKAGE AMSBIB  
General information
Latest issue
Archive

Search papers
Search references

RSS
Latest issue
Current issues
Archive issues
What is RSS



Proceedings of ISP RAS:
Year:
Volume:
Issue:
Page:
Find






Personal entry:
Login:
Password:
Save password
Enter
Forgotten password?
Register


Proceedings of the Institute for System Programming of the RAS, 2015, Volume 27, Issue 6, Pages 67–86
DOI: https://doi.org/10.15514/ISPRAS-2015-27(6)-5
(Mi tisp185)
 

Àhead of time optimization for JavaScript programs

Roman Zhuykova, Eugene Sharyginb

a Institute for System Programming of the RAS
b Lomonosov Moscow State University
References:
Abstract: Modern JavaScript engines use just-in-time (JIT) compilation to produce binary code. JIT compilers are limited in a complexity of optimizations they can perform at a runtime without delaying an execution. Static ahead-of-time (AOT) compilers do not have such limitations, but they are not well suited for compiling dynamic languages such as JavaScript. In the paper, we discuss methods for augmenting multi-tiered JIT compiler with a capability for AOT compilation, and implement some of ahead-of-time compilation ideas in two JavaScript engines - JavaScriptCore and V8. In JavaScriptCore (JSC), which is a part of open-source WebKit library, we have developed and implemented a framework, which allows saving of JavaScript programs as a binary package containing bytecode and a native code. The framework consists of two components: command-line compiler, which compiles source JavaScript program into compressed binary package, consisting of JSC internal representation called bytecode and native code produced by JSC's non-optimized JIT compiler. The second component is patched JSC engine with a capability for loading and executing binary packages produced by the compiler. In addition, we have implemented saving of optimized internal representation in another JavaScript engine, which is called V8 and is used in Chrome and many other browsers. When running the same JavaScript program, cached internal representation can be loaded to reduce JIT-compilation time and decrease percentage of running unoptimized code before it became hot.
Keywords: program optimizations, JavaScript, just-in-time optimization (JIT-optimization), ahead of time optimization, Webkit JavaScriptCore, V8.
Bibliographic databases:
Document Type: Article
Language: Russian
Citation: Roman Zhuykov, Eugene Sharygin, “Àhead of time optimization for JavaScript programs”, Proceedings of ISP RAS, 27:6 (2015), 67–86
Citation in format AMSBIB
\Bibitem{ZhuSha15}
\by Roman Zhuykov, Eugene Sharygin
\paper Àhead of time optimization for JavaScript programs
\jour Proceedings of ISP RAS
\yr 2015
\vol 27
\issue 6
\pages 67--86
\mathnet{http://mi.mathnet.ru/tisp185}
\crossref{https://doi.org/10.15514/ISPRAS-2015-27(6)-5}
\elib{https://elibrary.ru/item.asp?id=25476299}
Linking options:
  • https://www.mathnet.ru/eng/tisp185
  • https://www.mathnet.ru/eng/tisp/v27/i6/p67
  • Citing articles in Google Scholar: Russian citations, English citations
    Related articles in Google Scholar: Russian articles, English articles
    Proceedings of the Institute for System Programming of the RAS
    Statistics & downloads:
    Abstract page:196
    Full-text PDF :87
    References:33
     
      Contact us:
     Terms of Use  Registration to the website  Logotypes © Steklov Mathematical Institute RAS, 2024