{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:26:28Z","timestamp":1750220788236,"version":"3.41.0"},"reference-count":41,"publisher":"Association for Computing Machinery (ACM)","issue":"6","license":[{"start":{"date-parts":[[2020,10,3]],"date-time":"2020-10-03T00:00:00Z","timestamp":1601683200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"National Science Foundation","award":["CCF-1617954, CCF-1619140"],"award-info":[{"award-number":["CCF-1617954, CCF-1619140"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2020,11,30]]},"abstract":"<jats:p>\n            Managed language virtual machines (VM) rely on dynamic or just-in-time (JIT) compilation to generate optimized native code at run-time to deliver high execution performance. Many VMs and JIT compilers collect\n            <jats:italic>profile<\/jats:italic>\n            data at run-time to enable profile-guided optimizations (PGO) that customize the generated native code to different program inputs. PGOs are generally considered integral for VMs to produce high-quality and performant native code.\n          <\/jats:p>\n          <jats:p>In this work, we study and quantify the performance benefits of PGOs, understand the importance of profiling data quantity and quality\/accuracy to effectively guide PGOs, and assess the impact of individual PGOs on VM performance. The insights obtained from this work can be used to understand the current state of PGOs, develop strategies to more efficiently balance the cost and exploit the potential of PGOs, and explore the implications of and challenges for the alternative ahead-of-time (AOT) compilation model used by VMs.<\/jats:p>","DOI":"10.1145\/3391894","type":"journal-article","created":{"date-parts":[[2020,7,7]],"date-time":"2020-07-07T12:39:02Z","timestamp":1594125542000},"page":"1-26","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":3,"title":["Exploring Impact of Profile Data on Code Quality in the HotSpot JVM"],"prefix":"10.1145","volume":"19","author":[{"ORCID":"https:\/\/orcid.org\/0000-0001-5806-8217","authenticated-orcid":false,"given":"April W.","family":"Wade","sequence":"first","affiliation":[{"name":"University of Kansas, USA"}]},{"given":"Prasad A.","family":"Kulkarni","sequence":"additional","affiliation":[{"name":"University of Kansas, USA"}]},{"given":"Michael R.","family":"Jantz","sequence":"additional","affiliation":[{"name":"University of Tennessee, USA"}]}],"member":"320","published-online":{"date-parts":[[2020,10,3]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Github. [n.d.]. DaCapo Batik benchmark fails. Retrieved from https:\/\/github.com\/RedlineResearch\/OLD-OpenJDK8\/issues\/1.  Github. [n.d.]. DaCapo Batik benchmark fails. Retrieved from https:\/\/github.com\/RedlineResearch\/OLD-OpenJDK8\/issues\/1."},{"key":"e_1_2_1_2_1","unstructured":"Github [n.d.]. DaCapo Eclipse benchmark fails. Retrieved from https:\/\/github.com\/RedlineResearch\/OLD-OpenJDK8\/issues\/2.  Github [n.d.]. DaCapo Eclipse benchmark fails. Retrieved from https:\/\/github.com\/RedlineResearch\/OLD-OpenJDK8\/issues\/2."},{"key":"e_1_2_1_3_1","first-page":"2","article-title":"A survey of adaptive optimization in virtual machines","volume":"92","author":"Arnold Matthew","year":"2005","unstructured":"Matthew Arnold , Stephen Fink , David Grove , Michael Hind , and Peter F. Sweeney . 2005 . A survey of adaptive optimization in virtual machines . Proc. IEEE 92 , 2 (Feb. 2005), 449--466. Matthew Arnold, Stephen Fink, David Grove, Michael Hind, and Peter F. Sweeney. 2005. A survey of adaptive optimization in virtual machines. Proc. IEEE 92, 2 (Feb. 2005), 449--466.","journal-title":"Proc. IEEE"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1988042.1988048"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2005.9"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2005.9"},{"volume-title":"Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA\u201905)","author":"Arnold Matthew","key":"e_1_2_1_7_1","unstructured":"Matthew Arnold , Adam Welc , and V. T. Rajan . 2005. Improving virtual machine performance using a cross-run profile repository . In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA\u201905) . ACM, New York, NY, 297--311. DOI:https:\/\/doi.org\/10.1145\/1094811.1094835 10.1145\/1094811.1094835 Matthew Arnold, Adam Welc, and V. T. Rajan. 2005. Improving virtual machine performance using a cross-run profile repository. In Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA\u201905). ACM, New York, NY, 297--311. DOI:https:\/\/doi.org\/10.1145\/1094811.1094835"},{"key":"e_1_2_1_8_1","unstructured":"Steve Blackburn Daniel Frampton Robin Garner and John Zigman. 2009. dacapo-9.12-bach. Retrieved from http:\/\/dacapobench.org\/RELEASE_NOTES.txt.  Steve Blackburn Daniel Frampton Robin Garner and John Zigman. 2009. dacapo-9.12-bach. Retrieved from http:\/\/dacapobench.org\/RELEASE_NOTES.txt."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167488"},{"volume-title":"Proceedings of the Conference on Programming Language Design and Implementation. 403--412","author":"Bowman William J.","key":"e_1_2_1_10_1","unstructured":"William J. Bowman , Swaha Miller , Vincent St .-Amour, and R. Kent Dybvig . 2015. Profile-guided meta-programming . In Proceedings of the Conference on Programming Language Design and Implementation. 403--412 . William J. Bowman, Swaha Miller, Vincent St.-Amour, and R. Kent Dybvig. 2015. Profile-guided meta-programming. In Proceedings of the Conference on Programming Language Design and Implementation. 403--412."},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380211204"},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2854038.2854044"},{"volume-title":"Proceedings of the Conference on Programming Language Design and Implementation. 13--26","author":"Lueh Guei-Yuan","key":"e_1_2_1_13_1","unstructured":"Micha\u0142Cierniak, Guei-Yuan Lueh , and James M. Stichnoth . 2000. Practicing JUDO: Java under dynamic optimizations . In Proceedings of the Conference on Programming Language Design and Implementation. 13--26 . Micha\u0142Cierniak, Guei-Yuan Lueh, and James M. Stichnoth. 2000. Practicing JUDO: Java under dynamic optimizations. In Proceedings of the Conference on Programming Language Design and Implementation. 13--26."},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/356989.357008"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297027.1297033"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/872726.806987"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/233561.233562"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2013.6494997"},{"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\/1028976.1028983"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01205185"},{"volume-title":"Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications. 488--504","author":"Jantz Michael R.","key":"e_1_2_1_22_1","unstructured":"Michael R. Jantz , Forrest J. Robinson , Prasad A. Kulkarni , and Kshitij A. Doshi . 2015. Cross-layer memory management for managed language applications . In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications. 488--504 . Michael R. Jantz, Forrest J. Robinson, Prasad A. Kulkarni, and Kshitij A. Doshi. 2015. Cross-layer memory management for managed language applications. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications. 488--504."},{"key":"e_1_2_1_23_1","unstructured":"Calin Juravle. 2019. Improving app performance with ART optimizing profiles in the cloud. Retrieved from https:\/\/android-developers.googleblog.com\/2019\/04\/improving-app-performance-with-art.html.  Calin Juravle. 2019. Improving app performance with ART optimizing profiles in the cloud. Retrieved from https:\/\/android-developers.googleblog.com\/2019\/04\/improving-app-performance-with-art.html."},{"key":"e_1_2_1_24_1","first-page":"8","article-title":"Reducing the overhead of dynamic compilation","volume":"31","author":"Krintz Chandra","year":"2000","unstructured":"Chandra Krintz , David Grove , Vivek Sarkar , and Brad Calder . 2000 . Reducing the overhead of dynamic compilation . Softw. Pract. Exp. 31 , 8 (Dec. 2000), 717--738. Chandra Krintz, David Grove, Vivek Sarkar, and Brad Calder. 2000. Reducing the overhead of dynamic compilation. Softw. Pract. Exp. 31, 8 (Dec. 2000), 717--738.","journal-title":"Softw. Pract. Exp."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048126"},{"volume-title":"Proceedings of the 14th International Conference on Managed Languages and Runtimes (ManLang\u201917)","author":"Majo Zoltan","key":"e_1_2_1_26_1","unstructured":"Zoltan Majo , Tobias Hartmann , Marcel Mohler , and Thomas R. Gross . 2017. Integrating profile caching into the HotSpot multi-tier compilation system . In Proceedings of the 14th International Conference on Managed Languages and Runtimes (ManLang\u201917) . ACM, New York, NY, 105--118. DOI:https:\/\/doi.org\/10.1145\/3132190.3132210 10.1145\/3132190.3132210 Zoltan Majo, Tobias Hartmann, Marcel Mohler, and Thomas R. Gross. 2017. Integrating profile caching into the HotSpot multi-tier compilation system. In Proceedings of the 14th International Conference on Managed Languages and Runtimes (ManLang\u201917). ACM, New York, NY, 105--118. DOI:https:\/\/doi.org\/10.1145\/3132190.3132210"},{"volume-title":"Proceedings of the Symposium on Microarchitecture. 291--302","author":"Mock Markus","key":"e_1_2_1_27_1","unstructured":"Markus Mock , Craig Chambers , and Susan J. Eggers . 2000. Calpa: A tool for automating selective dynamic compilation . In Proceedings of the Symposium on Microarchitecture. 291--302 . Markus Mock, Craig Chambers, and Susan J. Eggers. 2000. Calpa: A tool for automating selective dynamic compilation. In Proceedings of the Symposium on Microarchitecture. 291--302."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/CGO.2007.35"},{"volume-title":"Proceedings of the Conference on Programming Language Design and Implementation (PLDI\u201910)","author":"Mytkowicz Todd","key":"e_1_2_1_29_1","unstructured":"Todd Mytkowicz , Amer Diwan , Matthias Hauswirth , and Peter F. Sweeney . 2010. Evaluating the accuracy of Java profilers . In Proceedings of the Conference on Programming Language Design and Implementation (PLDI\u201910) . 187--197. Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, and Peter F. Sweeney. 2010. Evaluating the accuracy of Java profilers. In Proceedings of the Conference on Programming Language Design and Implementation (PLDI\u201910). 187--197."},{"key":"e_1_2_1_30_1","volume-title":"Proceedings of the Symposium on Java Virtual Machine Research and Technology Symposium. 1--12","author":"Paleczny Michael","year":"2001","unstructured":"Michael Paleczny , Christopher Vick , and Cliff Click . 2001 . The Java HotSpot server compiler . In Proceedings of the Symposium on Java Virtual Machine Research and Technology Symposium. 1--12 . Michael Paleczny, Christopher Vick, and Cliff Click. 2001. The Java HotSpot server compiler. In Proceedings of the Symposium on Java Virtual Machine Research and Technology Symposium. 1--12."},{"volume-title":"Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI\u201990)","author":"Pettis Karl","key":"e_1_2_1_31_1","unstructured":"Karl Pettis and Robert C. Hansen . 1990. Profile guided code positioning . In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI\u201990) . 16--27. Karl Pettis and Robert C. Hansen. 1990. Profile guided code positioning. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI\u201990). 16--27."},{"key":"e_1_2_1_32_1","unstructured":"Android Open Source Project. [n.d.]. Introducing ART. Retrieved from https:\/\/source.android.com\/devices\/tech\/dalvik\/.  Android Open Source Project. [n.d.]. Introducing ART. Retrieved from https:\/\/source.android.com\/devices\/tech\/dalvik\/."},{"volume-title":"Proceedings of the Conference on Languages, Compilers, Tools, and Theory for Embedded Systems. 11--20","author":"Robinson Forrest J.","key":"e_1_2_1_33_1","unstructured":"Forrest J. Robinson , Michael R. Jantz , and Prasad A. Kulkarni . 2016. Code cache management in managed language VMs to reduce memory consumption for embedded systems . In Proceedings of the Conference on Languages, Compilers, Tools, and Theory for Embedded Systems. 11--20 . Forrest J. Robinson, Michael R. Jantz, and Prasad A. Kulkarni. 2016. Code cache management in managed language VMs to reduce memory consumption for embedded systems. In Proceedings of the Conference on Languages, Compilers, Tools, and Theory for Embedded Systems. 11--20."},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/503272.503287"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/353171.353176"},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.1145\/2048066.2048118"},{"key":"e_1_2_1_37_1","unstructured":"SPEC2008. 2008. SPECjvm2008 Benchmarks. Retrieved from http:\/\/www.spec.org\/jvm2008\/.  SPEC2008. 2008. SPECjvm2008 Benchmarks. Retrieved from http:\/\/www.spec.org\/jvm2008\/."},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/1075382.1075386"},{"volume-title":"Proceedings of the 18th ACM SIGPLAN\/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES\u201917)","author":"Wade April W.","key":"e_1_2_1_39_1","unstructured":"April W. Wade , Prasad A. Kulkarni , and Michael R. Jantz . 2017. AOT vs. JIT: Impact of profile data on code quality . In Proceedings of the 18th ACM SIGPLAN\/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES\u201917) . ACM, New York, NY, 1--10. DOI:https:\/\/doi.org\/10.1145\/3078633.3081037 10.1145\/3078633.3081037 April W. Wade, Prasad A. Kulkarni, and Michael R. Jantz. 2017. AOT vs. JIT: Impact of profile data on code quality. In Proceedings of the 18th ACM SIGPLAN\/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES\u201917). ACM, New York, NY, 1--10. DOI:https:\/\/doi.org\/10.1145\/3078633.3081037"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2038698.2038704"},{"volume-title":"Proceedings of the Symposium on Microarchitecture. 1--11","author":"Wu Youfeng","key":"e_1_2_1_41_1","unstructured":"Youfeng Wu and James R. Larus . 1994. Static branch frequency and program profile analysis . In Proceedings of the Symposium on Microarchitecture. 1--11 . Youfeng Wu and James R. Larus. 1994. Static branch frequency and program profile analysis. In Proceedings of the Symposium on Microarchitecture. 1--11."}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3391894","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3391894","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3391894","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T22:41:42Z","timestamp":1750200102000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3391894"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,10,3]]},"references-count":41,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2020,11,30]]}},"alternative-id":["10.1145\/3391894"],"URL":"https:\/\/doi.org\/10.1145\/3391894","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"type":"print","value":"1539-9087"},{"type":"electronic","value":"1558-3465"}],"subject":[],"published":{"date-parts":[[2020,10,3]]},"assertion":[{"value":"2019-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-03-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2020-10-03","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}