{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T12:16:08Z","timestamp":1763468168816,"version":"3.41.0"},"reference-count":38,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2013,12,1]],"date-time":"2013-12-01T00:00:00Z","timestamp":1385856000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000144","name":"Division of Computer and Network Systems","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100000144","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":[[2013,12]]},"abstract":"<jats:p>\n            Dynamic or Just-in-Time (JIT) compilation is essential to achieve high-performance emulation for programs written in\n            <jats:italic>managed<\/jats:italic>\n            languages, such as Java and C#. It has been observed that a conservative JIT compilation policy is most effective to obtain good runtime performance without impeding application progress on single-core machines. At the same time, it is often suggested that a more aggressive dynamic compilation strategy may perform best on modern machines that provide abundant computing resources, especially with virtual machines (VMs) that are also capable of spawning multiple concurrent compiler threads. However, comprehensive research on the best JIT compilation policy for such modern processors and VMs is currently lacking. The goal of this work is to explore the properties of single-tier and multitier JIT compilation policies that can enable existing and future VMs to realize the best program performance on modern machines.\n          <\/jats:p>\n          <jats:p>\n            In this work, we design novel experiments and implement new VM configurations to effectively control the compiler aggressiveness and optimization levels (\n            <jats:italic>if<\/jats:italic>\n            and\n            <jats:italic>when<\/jats:italic>\n            methods are compiled) in the industry-standard Oracle HotSpot Java VM to achieve this goal. We find that the best JIT compilation policy is determined by the nature of the application and the speed and effectiveness of the dynamic compilers. We extend earlier results showing the suitability of conservative JIT compilation on single-core machines for VMs with multiple concurrent compiler threads. We show that employing the free compilation resources (compiler threads and hardware cores) to aggressively compile\n            <jats:italic>more<\/jats:italic>\n            program methods quickly reaches a point of diminishing returns. At the same time, we also find that using the free resources to reduce compiler queue backup (compile selected hot methods\n            <jats:italic>early<\/jats:italic>\n            ) significantly benefits program performance, especially for slower (highly optimizing) JIT compilers. For such compilers, we observe that accurately prioritizing JIT method compiles is crucial to realize the most performance benefit with the smallest hardware budget. Finally, we show that a tiered compilation policy, although complex to implement, greatly alleviates the impact of more and early JIT compilation of programs on modern machines.\n          <\/jats:p>","DOI":"10.1145\/2541228.2541229","type":"journal-article","created":{"date-parts":[[2014,1,2]],"date-time":"2014-01-02T13:09:43Z","timestamp":1388668183000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":8,"title":["Exploring single and multilevel JIT compilation policy for modern machines\n            <sup>1<\/sup>"],"prefix":"10.1145","volume":"10","author":[{"given":"Michael R.","family":"Jantz","sequence":"first","affiliation":[{"name":"University of Kansas Department of Electrical Engineering and Computer Science Lawrence, Kansas, Lawrence, KS"}]},{"given":"Prasad A.","family":"Kulkarni","sequence":"additional","affiliation":[{"name":"University of Kansas Department of Electrical Engineering and Computer Science Lawrence, Kansas, Lawrence, KS"}]}],"member":"320","published-online":{"date-parts":[[2013,12]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353175"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353175"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/JPROC.2004.840305"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/583854.582432"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167488"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/1993498.1993508"},{"volume-title":"Proceedings of the 3rd ACM Workshop on Feedback-Directed and Dynamic Optimization. 13--20","author":"Bruening D.","key":"e_1_2_1_7_1","unstructured":"Bruening , D. and Duesterwald , E . 2000. Exploring optimal compilation unit shapes for an embedded just-in-time compiler . In Proceedings of the 3rd ACM Workshop on Feedback-Directed and Dynamic Optimization. 13--20 . Bruening, D. and Duesterwald, E. 2000. Exploring optimal compilation unit shapes for an embedded just-in-time compiler. In Proceedings of the 3rd ACM Workshop on Feedback-Directed and Dynamic Optimization. 13--20."},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167492"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380211204"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/800017.800542"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950402"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297027.1297033"},{"key":"e_1_2_1_13_1","unstructured":"Gosling J. Joy B. Steele G. and Bracha G. 2005. The Java(TM) Language Specification 3rd Ed. http:\/\/dl.acm.org\/citation.cfm&quest;id=1036643.   Gosling J. Joy B. Steele G. and Bracha G. 2005. The Java(TM) Language Specification 3rd Ed. http:\/\/dl.acm.org\/citation.cfm&quest;id=1036643."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/872726.806987"},{"volume-title":"Proceedings of the Conference on Virtual Machine Research and Technology Symposium. 12","author":"Grcevski N.","key":"e_1_2_1_15_1","unstructured":"Grcevski , N. , Kielstra , A. , Stoodley , K. , Stoodley , M. , and Sundaresan , V . 2004. Java just-in-time compiler and virtual machine improvements for server and middleware applications . In Proceedings of the Conference on Virtual Machine Research and Technology Symposium. 12 . Grcevski, N., Kielstra, A., Stoodley, K., Stoodley, M., and Sundaresan, V. 2004. Java just-in-time compiler and virtual machine improvements for server and middleware applications. In Proceedings of the Conference on Virtual Machine Research and Technology Symposium. 12."},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1356058.1356062"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/1088149.1088171"},{"key":"e_1_2_1_19_1","volume-title":"Proceedings of the IEEE Workshop on Programming Languages for Real-Time Industrial Applications. 75--84","author":"Harris T.","year":"1998","unstructured":"Harris , T. 1998 . Controlling run-time compilation . In Proceedings of the IEEE Workshop on Programming Languages for Real-Time Industrial Applications. 75--84 . Harris, T. 1998. Controlling run-time compilation. In Proceedings of the IEEE Workshop on Programming Languages for Real-Time Industrial Applications. 75--84."},{"volume-title":"Proceedings of the International Symposium on Code Generation and Optimization (CGO\u201903)","author":"Hazelwood K.","key":"e_1_2_1_20_1","unstructured":"Hazelwood , K. and Grove , D . 2003. Adaptive online context-sensitive inlining . In Proceedings of the International Symposium on Code Generation and Optimization (CGO\u201903) . IEEE Computer Society, Washington, DC, 253--264. Hazelwood, K. and Grove, D. 2003. Adaptive online context-sensitive inlining. In Proceedings of the International Symposium on Code Generation and Optimization (CGO\u201903). IEEE Computer Society, Washington, DC, 253--264."},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/233561.233562"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2451512.2451539"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380010203"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1369396.1370017"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.5555\/776261.776269"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/378795.378831"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.384"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1254810.1254824"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048126"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1109\/INTERACT.2011.9"},{"edition":"1","volume-title":"Microsoft. 2001. Microsoft C&num; Language Specifications","key":"e_1_2_1_31_1","unstructured":"Microsoft. 2001. Microsoft C&num; Language Specifications 1 st Ed. Microsoft Press . Microsoft. 2001. Microsoft C&num; Language Specifications 1st Ed. Microsoft Press."},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1735997.1736016"},{"volume-title":"Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium (JVM\u201901)","author":"Paleczny M.","key":"e_1_2_1_33_1","unstructured":"Paleczny , M. , Vick , C. , and Click , C . 2001. The Java hotspot TM server compiler . In Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium (JVM\u201901) . USENIX Association, Berkeley, CA, 1--12. Paleczny, M., Vick, C., and Click, C. 2001. The Java hotspot TM server compiler. In Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium (JVM\u201901). USENIX Association, Berkeley, CA, 1--12."},{"volume-title":"Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO\u201911)","author":"Sanchez R. N.","key":"e_1_2_1_34_1","unstructured":"Sanchez , R. N. , Amaral , J. N. , Szafron , D. , Pirvu , M. , and Stoodley , M . 2011. Using machines to learn method-specific compilation strategies . In Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO\u201911) . 257--266. Sanchez, R. N., Amaral, J. N., Szafron, D., Pirvu, M., and Stoodley, M. 2011. Using machines to learn method-specific compilation strategies. In Proceedings of the 9th Annual IEEE\/ACM International Symposium on Code Generation and Optimization (CGO\u201911). 257--266."},{"key":"e_1_2_1_35_1","volume-title":"Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design)","author":"Smith J.","year":"2005","unstructured":"Smith , J. and Nair , R . 2005 . Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design) . Morgan Kaufmann Publishers Inc ., San Francisco, CA, USA. Smith, J. and Nair, R. 2005. Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design). Morgan Kaufmann Publishers Inc., San Francisco, CA, USA."},{"key":"e_1_2_1_36_1","unstructured":"SPEC2008. 2008. SPECjvm2008 Benchmarks. http:\/\/www.spec.org\/jvm2008\/.  SPEC2008. 2008. SPECjvm2008 Benchmarks. http:\/\/www.spec.org\/jvm2008\/."},{"key":"e_1_2_1_37_1","unstructured":"SPEC98. 1998. SPECjvm98 Benchmarks. http:\/\/www.spec.org\/jvm98\/.  SPEC98. 1998. SPECjvm98 Benchmarks. http:\/\/www.spec.org\/jvm98\/."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2006.16"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/267959.267960"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2541228.2541229","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2541228.2541229","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:09:55Z","timestamp":1750234195000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2541228.2541229"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,12]]},"references-count":38,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2013,12]]}},"alternative-id":["10.1145\/2541228.2541229"],"URL":"https:\/\/doi.org\/10.1145\/2541228.2541229","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2013,12]]},"assertion":[{"value":"2012-05-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-12-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}