{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:52:16Z","timestamp":1750308736923,"version":"3.41.0"},"reference-count":31,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2014,2,1]],"date-time":"2014-02-01T00:00:00Z","timestamp":1391212800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000143","name":"Division of Computing and Communication Foundations","doi-asserted-by":"publisher","award":["CCF-1117162"],"award-info":[{"award-number":["CCF-1117162"]}],"id":[{"id":"10.13039\/100000143","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100006785","name":"Google","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100006785","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100004682","name":"Oracle","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100004682","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000185","name":"Defense Advanced Research Projects Agency","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100000185","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2014,2]]},"abstract":"<jats:p>Many guest languages are implemented using the Java Virtual Machine (JVM) as a host environment. There are two major implementation choices: custom compilers and so-called hosted interpreters. Custom compilers are complex to build but offer good performance. Hosted interpreters are comparatively simpler to implement but until now have suffered from poor performance.<\/jats:p>\n          <jats:p>We studied the performance of hosted interpreters and identified common bottlenecks preventing their efficient execution. First, similar to interpreters written in C\/C++, instruction dispatch is expensive on the JVM. Second, Java\u2019s semantics require expensive runtime exception checks that negatively affect array performance essential to interpreters.<\/jats:p>\n          <jats:p>We present two optimizations targeting these bottlenecks and show that the performance of optimized interpreters increases dramatically: we report speedups by a factor of up to 2.45 over the Jython interpreter, 3.57 over the Rhino interpreter, and 2.52 over the JRuby interpreter, respectively. The resulting performance is comparable with that of custom compilers. Our optimizations are enabled by a few simple annotations that require only modest implementation effort; in return, performance increases substantially.<\/jats:p>","DOI":"10.1145\/2532642","type":"journal-article","created":{"date-parts":[[2014,4,1]],"date-time":"2014-04-01T13:06:54Z","timestamp":1396357614000},"page":"1-24","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Efficient hosted interpreters on the JVM"],"prefix":"10.1145","volume":"11","author":[{"given":"G\u00fclfem","family":"Savrun-Yeni\u00e7eri","sequence":"first","affiliation":[{"name":"University of California, Irvine"}]},{"given":"Wei","family":"Zhang","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]},{"given":"Huahan","family":"Zhang","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]},{"given":"Eric","family":"Seckler","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]},{"given":"Chen","family":"Li","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]},{"given":"Stefan","family":"Brunthaler","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]},{"given":"Per","family":"Larsen","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]},{"given":"Michael","family":"Franz","sequence":"additional","affiliation":[{"name":"University of California, Irvine"}]}],"member":"320","published-online":{"date-parts":[[2014,2]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/362248.362270"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2005.14"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167488"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1565824.1565827"},{"key":"e_1_2_1_5_1","volume-title":"ASM: A code manipulation tool to implement adaptable systems. In Adaptable and Extensible Component Systems.","author":"Bruneton Eric","year":"2002","unstructured":"Eric Bruneton , Romain Lenglet , and Thierry Coupaye . 2002 . ASM: A code manipulation tool to implement adaptable systems. In Adaptable and Extensible Component Systems. Eric Bruneton, Romain Lenglet, and Thierry Coupaye. 2002. ASM: A code manipulation tool to implement adaptable systems. In Adaptable and Extensible Component Systems."},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2009.11.011"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1508293.1508304"},{"key":"e_1_2_1_9_1","unstructured":"Charles Curley. 1993a. Life in the FastForth lane. Forth Dimensions 6--12.  Charles Curley. 1993a. Life in the FastForth lane. Forth Dimensions 6--12."},{"key":"e_1_2_1_10_1","unstructured":"Charles Curley. 1993b. Optimizing FastForth: Optimizing in a BSR\/JSR threaded Forth. Forth Dimensions 21--26.  Charles Curley. 1993b. Optimizing FastForth: Optimizing in a BSR\/JSR threaded Forth. Forth Dimensions 21--26."},{"key":"e_1_2_1_11_1","volume-title":"van Campenhout","author":"Debaere Eddy H.","year":"1990","unstructured":"Eddy H. Debaere and Jan M . van Campenhout . 1990 . Interpretation and Instruction Path Coprocessing. MIT Press . I--IX, 192 pages. Eddy H. Debaere and Jan M. van Campenhout. 1990. Interpretation and Instruction Path Coprocessing. MIT Press. I--IX, 192 pages."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781162"},{"key":"e_1_2_1_13_1","first-page":"1","article-title":"The structure and performance of efficient interpreters","volume":"5","author":"Anton Ertl M.","year":"2003","unstructured":"M. Anton Ertl and David Gregg . 2003 b. The structure and performance of efficient interpreters . Journal of Instruction-Level Parallelism 5 , 1 -- 25 . M. Anton Ertl and David Gregg. 2003b. The structure and performance of efficient interpreters. Journal of Instruction-Level Parallelism 5, 1--25.","journal-title":"Journal of Instruction-Level Parallelism"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1059579.1059583"},{"key":"e_1_2_1_15_1","volume-title":"Retrieved","author":"Fulgham Brent","year":"2002","unstructured":"Brent Fulgham . 2002 . The Computer Language Benchmarks Game . Retrieved January 10, 2012 from http:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/turbo-boost\/turbo-boost-technology.html. Brent Fulgham. 2002. The Computer Language Benchmarks Game. Retrieved January 10, 2012 from http:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/turbo-boost\/turbo-boost-technology.html."},{"volume-title":"Retrieved","year":"2012","key":"e_1_2_1_16_1","unstructured":"Intel. 2012 . Intel Turbo Boost Technology\u2014On-Demand Processor Performance . Retrieved April 25, 2013 from http:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/turbo-boost\/turbo-boost-technology.html. Intel. 2012. Intel Turbo Boost Technology\u2014On-Demand Processor Performance. Retrieved April 25, 2013 from http:\/\/www.intel.com\/content\/www\/us\/en\/architecture-and-technology\/turbo-boost\/turbo-boost-technology.html."},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/2151024.2151047"},{"key":"e_1_2_1_18_1","volume-title":"Proceedings of the 2004 Workshop on Interpreters, Virtual Machines and Emulators (IVME\u201904)","author":"IVME","year":"2004","unstructured":"IVME \u201904. 2004 . Proceedings of the 2004 Workshop on Interpreters, Virtual Machines and Emulators (IVME\u201904) . ACM Press, New York, NY. IVME \u201904. 2004. Proceedings of the 2004 Workshop on Interpreters, Virtual Machines and Emulators (IVME\u201904). ACM Press, New York, NY."},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1109\/MC.1982.1653970"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1369396.1370017"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1023\/A:1025055424017"},{"volume-title":"Retrieved","year":"2009","key":"e_1_2_1_22_1","unstructured":"Linux. 2009 . Perf . Retrieved May 29, 2013 from https:\/\/perf.wiki.kernel.org\/index.php\/Main_Page. Linux. 2009. Perf. Retrieved May 29, 2013 from https:\/\/perf.wiki.kernel.org\/index.php\/Main_Page."},{"key":"e_1_2_1_23_1","volume-title":"Retrieved","author":"Oracle Corporation","year":"2008","unstructured":"Oracle Corporation . 2008 . The Da Vinci Machine Project . Retrieved May 29, 2013 from http:\/\/openjdk.java.net\/projects\/mlvm\/. Oracle Corporation. 2008. The Da Vinci Machine Project. Retrieved May 29, 2013 from http:\/\/openjdk.java.net\/projects\/mlvm\/."},{"key":"e_1_2_1_24_1","volume-title":"Proceedings of the 2001 Symposium on Java Virtual Machine Research and Technology\u2014Volume 1 (JVM\u201901)","author":"Paleczny Michael","year":"2001","unstructured":"Michael Paleczny , Christopher Vick , and Cliff Click . 2001 . The Java HotSpot#8482; server compiler . In Proceedings of the 2001 Symposium on Java Virtual Machine Research and Technology\u2014Volume 1 (JVM\u201901) . USENIX Association, Berkeley, CA, 1--12. http:\/\/dl.acm.org\/citation.cfm&quest;id=1267847.1267848. Michael Paleczny, Christopher Vick, and Cliff Click. 2001. The Java HotSpot#8482; server compiler. In Proceedings of the 2001 Symposium on Java Virtual Machine Research and Technology\u2014Volume 1 (JVM\u201901). USENIX Association, Berkeley, CA, 1--12. http:\/\/dl.acm.org\/citation.cfm&quest;id=1267847.1267848."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/199448.199526"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/1094855.1094912"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328195.1328197"},{"key":"e_1_2_1_28_1","unstructured":"Sun Microsystems Inc. 2011. JSR 292: Supporting dynamically typed languages on the Java platform. Early draft. http:\/\/jcp.org\/en\/jsr\/detail&quest;id=292.  Sun Microsystems Inc. 2011. JSR 292: Supporting dynamically typed languages on the Java platform. Early draft. http:\/\/jcp.org\/en\/jsr\/detail&quest;id=292."},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1059579.1059591"},{"key":"e_1_2_1_30_1","volume-title":"Retrieved","author":"Wheeler David A.","year":"2001","unstructured":"David A. Wheeler . 2001 . SLOCCount . Retrieved January 25, 2012 from http:\/\/www.dwheeler.com\/sloccount\/ David A. Wheeler. 2001. SLOCCount. Retrieved January 25, 2012 from http:\/\/www.dwheeler.com\/sloccount\/"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2400682.2400689"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640134.1640147"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2532642","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2532642","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T20:22:05Z","timestamp":1750278125000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2532642"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2014,2]]},"references-count":31,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2014,2]]}},"alternative-id":["10.1145\/2532642"],"URL":"https:\/\/doi.org\/10.1145\/2532642","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2014,2]]},"assertion":[{"value":"2013-06-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-09-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2014-02-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}