{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,9]],"date-time":"2026-07-09T17:59:42Z","timestamp":1783619982963,"version":"3.55.0"},"reference-count":41,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2018,12,19]],"date-time":"2018-12-19T00:00:00Z","timestamp":1545177600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Ministry of Science, ICT 8 Future Planning","award":["NRF-2017R1A2B2005562"],"award-info":[{"award-number":["NRF-2017R1A2B2005562"]}]},{"name":"Basic Science Research Program through the National Research Foundation (NRF) of Korea"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2018,12,31]]},"abstract":"<jats:p>As web pages and web apps increasingly include heavy JavaScript code, JavaScript performance has been a critical issue. Modern JavaScript engines achieve a remarkable performance by employing tiered-execution architecture based on interpreter, baseline just-in-time compiler (JITC), and optimizing JITC. Unfortunately, they suffer from a substantial compilation overhead, which can take more than 50% of the whole running time. A simple idea to reduce the compilation overhead is ahead-of-time compilation (AOTC), which reuses the code generated in the previous run. In fact, existing studies that reuse the bytecode generated by the interpreter or the machine code generated by the baseline JITC have shown tangible performance benefits [12, 31, 41]. However, there has been no study to reuse the machine code generated by the optimizing JITC, which heavily uses profile-based optimizations, thus not easily reusable. We propose a novel AOTC that can reuse the optimized machine code for high-performance JavaScript engines. Unlike previous AOTCs, we need to resolve a few challenging issues related to reusing profile-based optimized code and relocating dynamic addresses. Our AOTC improves the performance of a commercial JavaScript engine by 6.36 times (max) and 1.99 times (average) for Octane benchmarks, by reducing the compilation overhead and by running the optimized code from the first invocation of functions. It also improves the loading time of six web apps by 1.28 times, on average.<\/jats:p>","DOI":"10.1145\/3291056","type":"journal-article","created":{"date-parts":[[2018,12,19]],"date-time":"2018-12-19T13:07:08Z","timestamp":1545224828000},"page":"1-20","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["Reusing the Optimized Code for JavaScript Ahead-of-Time Compilation"],"prefix":"10.1145","volume":"15","author":[{"given":"Hyukwoo","family":"Park","sequence":"first","affiliation":[{"name":"Seoul National University, Seoul, Korea"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Sungkook","family":"Kim","sequence":"additional","affiliation":[{"name":"Seoul National University, Seoul, Korea"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jung-Geun","family":"Park","sequence":"additional","affiliation":[{"name":"Seoul National University, Seoul, Korea"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Soo-Mook","family":"Moon","sequence":"additional","affiliation":[{"name":"Seoul National University, Seoul, Korea"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,12,19]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Alexa. 2018. The Top 500 Sites on the Web. Retrieved from https:\/\/www.alexa.com\/topsites.  Alexa. 2018. The Top 500 Sites on the Web. Retrieved from https:\/\/www.alexa.com\/topsites."},{"key":"e_1_2_1_2_1","unstructured":"Apple Inc. 2018. WebKit. Retrieved from https:\/\/webkit.org\/.  Apple Inc. 2018. WebKit. Retrieved from https:\/\/webkit.org\/."},{"key":"e_1_2_1_3_1","unstructured":"Apple Inc. 2018. WebKit JavaScriptCore. Retrieved from https:\/\/github.com\/WebKit\/webkit\/tree\/master\/Source\/JavaScriptCore.  Apple Inc. 2018. WebKit JavaScriptCore. Retrieved from https:\/\/github.com\/WebKit\/webkit\/tree\/master\/Source\/JavaScriptCore."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993508"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1346256.1346265"},{"key":"e_1_2_1_6_1","unstructured":"Yann Collet. 2018. LZ4 compression algorithm. Retrieved from http:\/\/lz4.github.io\/lz4\/.  Yann Collet. 2018. LZ4 compression algorithm. Retrieved from http:\/\/lz4.github.io\/lz4\/."},{"key":"e_1_2_1_7_1","unstructured":"ECMA International. 2015. ECMAScript 2015 Language Specification. Retrieved from http:\/\/www.ecma-international.org\/ecma-262\/6.0.  ECMA International. 2015. ECMAScript 2015 Language Specification. Retrieved from http:\/\/www.ecma-international.org\/ecma-262\/6.0."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1542476.1542528"},{"key":"e_1_2_1_9_1","unstructured":"Google Inc. 2018. Chrome. Retrieved from https:\/\/developer.chrome.com.  Google Inc. 2018. Chrome. Retrieved from https:\/\/developer.chrome.com."},{"key":"e_1_2_1_10_1","unstructured":"Google Inc. 2018. V8 JavaScript engine. Retrieved from https:\/\/developers.google.com\/v8.  Google Inc. 2018. V8 JavaScript engine. Retrieved from https:\/\/developers.google.com\/v8."},{"key":"e_1_2_1_11_1","unstructured":"Google Inc. 2018. Octane 2.0 JavaScript benchmark. Retrieved from https:\/\/chromium.github.io\/octane.  Google Inc. 2018. Octane 2.0 JavaScript benchmark. Retrieved from https:\/\/chromium.github.io\/octane."},{"key":"e_1_2_1_12_1","volume-title":"Proceedings of the 2013 Workshop on Architectural and Microarchitectural Support for Binary Translation (AMAS-BT\u201913)","author":"Guckert L."},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the 2009 Workshop on Parallel Execution of Sequential Programs on Multicore Architectures (PESPMA\u201909)","author":"Ha Jungwoo"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062363"},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the 2003 Workshop on Exploring the Trace Space for Dynamic Optimization Techniques. 51--58","author":"Hazelwood Kim"},{"key":"e_1_2_1_16_1","volume-title":"May 25, 2011.","author":"Hickson Ian","year":"2011"},{"key":"e_1_2_1_17_1","unstructured":"Paul Hsieh. 2004. Hash functions. Retrieved from http:\/\/www.azillionmonkeys. com\/qed\/hash.html.  Paul Hsieh. 2004. Hash functions. Retrieved from http:\/\/www.azillionmonkeys. com\/qed\/hash.html."},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/646149.679193"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/1254766.1254776"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/377792.377902"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1109\/EUC.2008.80"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2816707.2816719"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.384"},{"key":"e_1_2_1_24_1","volume-title":"WebGL specification","author":"Marrin Chris"},{"key":"e_1_2_1_25_1","unstructured":"Mozilla. 2018. Firefox browser. Retrieved from https:\/\/www.mozilla.org\/en-US\/firefox\/new.  Mozilla. 2018. Firefox browser. Retrieved from https:\/\/www.mozilla.org\/en-US\/firefox\/new."},{"key":"e_1_2_1_26_1","unstructured":"Mozilla. 2018. SpiderMonkey JavaScript engine. Retrieved from https:\/\/developer.mozilla.org\/ko\/docs\/SpiderMonkey.  Mozilla. 2018. SpiderMonkey JavaScript engine. Retrieved from https:\/\/developer.mozilla.org\/ko\/docs\/SpiderMonkey."},{"key":"e_1_2_1_27_1","unstructured":"Mozilla. 2018. asm.js. Retrieved from http:\/\/asmjs.org\/.  Mozilla. 2018. asm.js. Retrieved from http:\/\/asmjs.org\/."},{"key":"e_1_2_1_28_1","unstructured":"Node.js Foundation. 2018. Node.js. Retrieved from https:\/\/nodejs.org.  Node.js Foundation. 2018. Node.js. Retrieved from https:\/\/nodejs.org."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.5555\/2755753.2757057"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.5555\/2738600.2738623"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1109\/ESTIMedia.2015.7351768"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3125501.3125512"},{"key":"e_1_2_1_33_1","volume-title":"Proceedings of the 1999 International Conference on Computer Design. IEEE, 108--115","author":"Radhakrishnan R."},{"key":"e_1_2_1_34_1","volume-title":"Proceedings of the 2000 6th International Symposium on High Performance Computer Architecture (HPCA\u201900)","author":"Radhakrishnan R."},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/377792.377901"},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the 2010 USENIX conference on Web application development (WebApps\u201910)","author":"Ratanaworabhan Paruj"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2007.29"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806598"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353176"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048147.2048224"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1134\/S036176881701008X"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3291056","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3291056","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:01:52Z","timestamp":1750208512000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3291056"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,12,19]]},"references-count":41,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2018,12,31]]}},"alternative-id":["10.1145\/3291056"],"URL":"https:\/\/doi.org\/10.1145\/3291056","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"value":"1544-3566","type":"print"},{"value":"1544-3973","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,12,19]]},"assertion":[{"value":"2018-04-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-10-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-12-19","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}