{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,10]],"date-time":"2026-06-10T03:53:59Z","timestamp":1781063639227,"version":"3.54.1"},"reference-count":21,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2017,10,12]],"date-time":"2017-10-12T00:00:00Z","timestamp":1507766400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100000266","name":"Engineering and Physical Sciences Research Council","doi-asserted-by":"publisher","award":["EP\/K01790X\/1"],"award-info":[{"award-number":["EP\/K01790X\/1"]}],"id":[{"id":"10.13039\/501100000266","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2017,10,12]]},"abstract":"<jats:p>Virtual Machines (VMs) with Just-In-Time (JIT) compilers are traditionally thought to execute programs in two phases: the initial warmup phase determines which parts of a program would most benefit from dynamic compilation, before JIT compiling those parts into machine code; subsequently the program is said to be at a steady state of peak performance. Measurement methodologies almost always discard data collected during the warmup phase such that reported measurements focus entirely on peak performance. We introduce a fully automated statistical approach, based on changepoint analysis, which allows us to determine if a program has reached a steady state and, if so, whether that represents peak performance or not. Using this, we show that even when run in the most controlled of circumstances, small, deterministic, widely studied microbenchmarks often fail to reach a steady state of peak performance on a variety of common VMs. Repeating our experiment on 3 different machines, we found that at most 43.5% of &lt;VM, Benchmark&gt; pairs consistently reach a steady state of peak performance.<\/jats:p>","DOI":"10.1145\/3133876","type":"journal-article","created":{"date-parts":[[2017,10,13]],"date-time":"2017-10-13T15:15:45Z","timestamp":1507907745000},"page":"1-27","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":87,"title":["Virtual machine warmup blows hot and cold"],"prefix":"10.1145","volume":"1","author":[{"given":"Edd","family":"Barrett","sequence":"first","affiliation":[{"name":"King's College London, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Carl Friedrich","family":"Bolz-Tereick","sequence":"additional","affiliation":[{"name":"King's College London, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Rebecca","family":"Killick","sequence":"additional","affiliation":[{"name":"Lancaster University, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Sarah","family":"Mount","sequence":"additional","affiliation":[{"name":"King's College London, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Laurence","family":"Tratt","sequence":"additional","affiliation":[{"name":"King's College London, UK"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2017,10,12]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0378-3758(96)00138-3"},{"key":"e_1_2_2_2_1","volume-title":"The Computer Language Benchmarks Game","author":"Bagley Doug","unstructured":"Doug Bagley , Brent Fulgham , and Isaac Gouy . 2004. The Computer Language Benchmarks Game . http:\/\/benchmarksgame. alioth.debian.org\/ . (2004). Accessed: 2017-09-01. Doug Bagley, Brent Fulgham, and Isaac Gouy. 2004. The Computer Language Benchmarks Game. http:\/\/benchmarksgame. alioth.debian.org\/ . (2004). Accessed: 2017-09-01."},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cl.2015.03.001"},{"key":"e_1_2_2_4_1","doi-asserted-by":"crossref","unstructured":"Stephen M. Blackburn Robin Garner Chris Hoffmann Asjad M. Khang Kathryn S. McKinley Rotem Bentzur Amer Diwan Daniel Feinberg Daniel Frampton Samuel Z. Guyer Martin Hirzel Antony Hosking Maria Jump Han Lee J. Eliot B. Moss Aashish Phansalkar Darko Stefanovi\u0107 Thomas VanDrunen Daniel von Dincklage and Ben Wiedermann. 2006. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In OOPSLA. 169\u2013190.  Stephen M. Blackburn Robin Garner Chris Hoffmann Asjad M. Khang Kathryn S. McKinley Rotem Bentzur Amer Diwan Daniel Feinberg Daniel Frampton Samuel Z. Guyer Martin Hirzel Antony Hosking Maria Jump Han Lee J. Eliot B. Moss Aashish Phansalkar Darko Stefanovi\u0107 Thomas VanDrunen Daniel von Dincklage and Ben Wiedermann. 2006. The DaCapo Benchmarks: Java Benchmarking Development and Analysis. In OOPSLA. 169\u2013190.","DOI":"10.1145\/1167515.1167488"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2013.02.001"},{"key":"e_1_2_2_6_1","unstructured":"James Charles Preet Jassi Ananth Narayan S Abbas Sadat and Alexandra Fedorova. 2009. Evaluation of the Intel Core i7 Turbo Boost Feature. In IISWC.  James Charles Preet Jassi Ananth Narayan S Abbas Sadat and Alexandra Fedorova. 2009. Evaluation of the Intel Core i7 Turbo Boost Feature. In IISWC."},{"key":"e_1_2_2_7_1","volume-title":"Berger","author":"Curtsinger Charlie","year":"2013","unstructured":"Charlie Curtsinger and Emery D . Berger . 2013 . Stabilizer : Statistically sound performance evaluation. In ASPLOS. Charlie Curtsinger and Emery D. Berger. 2013. Stabilizer: Statistically sound performance evaluation. In ASPLOS."},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9780511984679.011"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1297105.1297033"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2095050.2095100"},{"key":"e_1_2_2_11_1","unstructured":"Google. 2012. Octane benchmark suite. https:\/\/developers.google.com\/octane\/ . (2012). Accessed: 2017-09-01.  Google. 2012. Octane benchmark suite. https:\/\/developers.google.com\/octane\/ . (2012). Accessed: 2017-09-01."},{"key":"e_1_2_2_12_1","unstructured":"Intel. 2017. Intel 64 and IA-32 Architectures Software Developer\u2019s Manual: P-State Hardware Coordination.  Intel. 2017. Intel 64 and IA-32 Architectures Software Developer\u2019s Manual: P-State Hardware Coordination."},{"key":"e_1_2_2_13_1","unstructured":"Tomas Kalibera Lubomir Bulej and Petr Tuma. 2005. Benchmark precision and random initial state. In SPECTS.  Tomas Kalibera Lubomir Bulej and Petr Tuma. 2005. Benchmark precision and random initial state. In SPECTS."},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491894.2464160"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.18637\/jss.v058.i03"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1080\/01621459.2012.737745"},{"key":"e_1_2_2_18_1","volume-title":"Linux Kernel Documentation. https:\/\/www.kernel.org\/-doc\/Documentation\/timers\/NO_HZ.txt .","year":"2013","unstructured":"Linux. 2013. NO_HZ : Reducing Scheduling-Clock Ticks , Linux Kernel Documentation. https:\/\/www.kernel.org\/-doc\/Documentation\/timers\/NO_HZ.txt . ( 2013 ). Accessed : 2017-09-01. Linux. 2013. NO_HZ: Reducing Scheduling-Clock Ticks, Linux Kernel Documentation. https:\/\/www.kernel.org\/-doc\/Documentation\/timers\/NO_HZ.txt . (2013). Accessed: 2017-09-01."},{"key":"e_1_2_2_19_1","volume-title":"Sweeney","author":"Mytkowicz Todd","year":"2009","unstructured":"Todd Mytkowicz , Amer Diwan , Matthias Hauswirth , and Peter F . Sweeney . 2009 . Producing Wrong Data Without Doing Anything Obviously Wrong!. In ASPLKS. 265\u2013276. Todd Mytkowicz, Amer Diwan, Matthias Hauswirth, and Peter F. Sweeney. 2009. Producing Wrong Data Without Doing Anything Obviously Wrong!. In ASPLKS. 265\u2013276."},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1080\/01621459.1995.10476521"},{"key":"e_1_2_2_23_1","unstructured":"Livio Soares and Michael Stumm. 2010. FlexSC: Flexible System Call Scheduling with Exception-less System Calls. In OSDI. 1\u20138.  Livio Soares and Michael Stumm. 2010. FlexSC: Flexible System Call Scheduling with Exception-less System Calls. In OSDI. 1\u20138."},{"key":"e_1_2_2_24_1","unstructured":"John Tukey. 1977. Exploratory Data Analysis.  John Tukey. 1977. Exploratory Data Analysis."}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3133876","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3133876","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T03:30:34Z","timestamp":1750217434000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3133876"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,10,12]]},"references-count":21,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2017,10,12]]}},"alternative-id":["10.1145\/3133876"],"URL":"https:\/\/doi.org\/10.1145\/3133876","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2017,10,12]]},"assertion":[{"value":"2017-10-12","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}