{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:11:39Z","timestamp":1750306299327,"version":"3.41.0"},"reference-count":31,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2016,4,5]],"date-time":"2016-04-05T00:00:00Z","timestamp":1459814400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"DOE Early Career Award"},{"name":"Google Faculty Award"},{"name":"Career Award, IBM CAS Fellowship"},{"name":"National Science Foundation","award":["1455404 and 1525609"],"award-info":[{"award-number":["1455404 and 1525609"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2016,4,5]]},"abstract":"<jats:p>Feedback-driven optimization (FDO) is an important component in mainstream compilers. By allowing the compiler to reoptimize the program based on some profiles of the program's dynamic behaviors, it often enhances the quality of the generated code substantially. A barrier for using FDO is that it often requires many training runs to collect enough profiles to amortize the sensitivity of program optimizations to program input changes. Various sampling techniques have been explored to alleviate this time-consuming process. However, the lowered profile accuracy caused by sampling often hurts the benefits of FDO.<\/jats:p>\n          <jats:p>This article gives the first systematic study in how sampling rates affect the accuracy of collected profiles and how the accuracy correlates with the usefulness of the profile for modern FDO. Studying basic block and edge profiles for FDO in two mature compilers reveals several counterintuitive observations, one of which is that profiling accuracy does not strongly correlate with the benefits of the FDO. A detailed analysis identifies three types of sampling-caused errors that critically impair the quality of the profiles for FDO. It then introduces a simple way to rectify profiles based on the findings. Experiments demonstrate that the simple rectification fixes most of those critical errors in sampled profiles and significantly enhances the effectiveness of FDO.<\/jats:p>","DOI":"10.1145\/2851502","type":"journal-article","created":{"date-parts":[[2016,4,5]],"date-time":"2016-04-05T15:18:51Z","timestamp":1459869531000},"page":"1-24","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":5,"title":["Examining and Reducing the Influence of Sampling Errors on Feedback-Driven Optimizations"],"prefix":"10.1145","volume":"13","author":[{"given":"Mingzhou","family":"Zhou","sequence":"first","affiliation":[{"name":"IBM"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Bo","family":"Wu","sequence":"additional","affiliation":[{"name":"Colorado School of Mines, Golden, CO"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Xipeng","family":"Shen","sequence":"additional","affiliation":[{"name":"North Carolina State University, Raleigh, NC"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Yaoqing","family":"Gao","sequence":"additional","affiliation":[{"name":"IBM Toronto Lab, Markham, ON, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Graham","family":"Yiu","sequence":"additional","affiliation":[{"name":"IBM Toronto Lab, Markham, ON, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2016,4,5]]},"reference":[{"volume-title":"Proceedings of the 15th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications.","author":"Arnold M.","key":"e_1_2_1_1_1","unstructured":"M. Arnold , S. Fink , D. Grove , M. Hind , and P. F. Sweeney . 2000. Adaptive optimization in the JalapeNO JVM . In Proceedings of the 15th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. M. Arnold, S. Fink, D. Grove, M. Hind, and P. F. Sweeney. 2000. Adaptive optimization in the JalapeNO JVM. In Proceedings of the 15th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications."},{"volume-title":"Proceedings of the International Symposium on Code Generation and Optimization.","author":"Arnold M.","key":"e_1_2_1_2_1","unstructured":"M. Arnold and D. Grove . 2005. Collecting and exploiting high-accuracy call graph profiles in virtual machines . In Proceedings of the International Symposium on Code Generation and Optimization. M. Arnold and D. Grove. 2005. Collecting and exploiting high-accuracy call graph profiles in virtual machines. In Proceedings of the International Symposium on Code Generation and Optimization."},{"volume-title":"Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation","author":"Arnold M.","key":"e_1_2_1_3_1","unstructured":"M. Arnold and B. G. Ryder . 2001. A framework for reducing the cost of instrumented code . In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation . Snowbird, Utah. M. Arnold and B. G. Ryder. 2001. A framework for reducing the cost of instrumented code. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation. Snowbird, Utah."},{"volume-title":"Proceedings of the ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation (PLDI'93)","author":"Ball T.","key":"e_1_2_1_4_1","unstructured":"T. Ball and J. R. Larus . 1993. Branch prediction for free . In Proceedings of the ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation (PLDI'93) . T. Ball and J. R. Larus. 1993. Branch prediction for free. In Proceedings of the ACM SIGPLAN 1993 Conference on Programming Language Design and Implementation (PLDI'93)."},{"volume-title":"Proceedings of the 29th Annual ACM\/IEEE International Symposium on Microarchitecture.","author":"Ball T.","key":"e_1_2_1_5_1","unstructured":"T. Ball and J. R. Larus . 1996. Efficient path profiling . In Proceedings of the 29th Annual ACM\/IEEE International Symposium on Microarchitecture. T. Ball and J. R. Larus. 1996. Efficient path profiling. In Proceedings of the 29th Annual ACM\/IEEE International Symposium on Microarchitecture."},{"volume-title":"Proceedings of the 2nd ACM\/SPEC International Conference on Performance Engineering.","author":"Berube P.","key":"e_1_2_1_6_1","unstructured":"P. Berube , A. Preuss , and J. N. Amaral . 2011. Combined profiling: Practical collection of feedback information for code optimization . In Proceedings of the 2nd ACM\/SPEC International Conference on Performance Engineering. P. Berube, A. Preuss, and J. N. Amaral. 2011. Combined profiling: Practical collection of feedback information for code optimization. In Proceedings of the 2nd ACM\/SPEC International Conference on Performance Engineering."},{"volume-title":"Proceedings of the 29th Annual ACM\/IEEE International Symposium on Microarchitecture.","author":"Bond M. D.","key":"e_1_2_1_7_1","unstructured":"M. D. Bond and K. S. McKinley . 2005. Continuous path and edge profiling . In Proceedings of the 29th Annual ACM\/IEEE International Symposium on Microarchitecture. M. D. Bond and K. S. McKinley. 2005. Continuous path and edge profiling. In Proceedings of the 29th Annual ACM\/IEEE International Symposium on Microarchitecture."},{"volume-title":"Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'07)","author":"Buytaert D.","key":"e_1_2_1_8_1","unstructured":"D. Buytaert , A. Georges , M. Hind , M. Arnold , L. Eeckhout , and K. De Bosschere . 2007. Using HPM-sampling to drive dynamic compilation . In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'07) . D. Buytaert, A. Georges, M. Hind, M. Arnold, L. Eeckhout, and K. De Bosschere. 2007. Using HPM-sampling to drive dynamic compilation. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'07)."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.5555\/138720.138721"},{"volume-title":"Proceedings of the 8th Annual IEEE\/ACM International Symposium on Code Generation and Optimization","author":"Chen D.","key":"e_1_2_1_10_1","unstructured":"D. Chen , N. Vachharajani , R. Hundt , S. Liao , V. Ramasamy , P. Yuan , W. Chen , and W. Zheng . 2010. Taming hardware event samples for FDO compilation . In Proceedings of the 8th Annual IEEE\/ACM International Symposium on Code Generation and Optimization . New York, NY. D. Chen, N. Vachharajani, R. Hundt, S. Liao, V. Ramasamy, P. Yuan, W. Chen, and W. Zheng. 2010. Taming hardware event samples for FDO compilation. In Proceedings of the 8th Annual IEEE\/ACM International Symposium on Code Generation and Optimization. New York, NY."},{"key":"e_1_2_1_11_1","volume-title":"Computer architecture performance evaluation methods. Synthesis Lectures on Computer Architecture","author":"Eeckhout L.","year":"2010","unstructured":"L. Eeckhout . 2010. Computer architecture performance evaluation methods. Synthesis Lectures on Computer Architecture ( 2010 ). L. Eeckhout. 2010. Computer architecture performance evaluation methods. Synthesis Lectures on Computer Architecture (2010)."},{"key":"e_1_2_1_12_1","first-page":"1","article-title":"Quantifying the impact of input data sets on program behavior and its applications","volume":"5","author":"Eeckhout L.","year":"2003","unstructured":"L. Eeckhout , H. Vandierendonck , and K. De Bosschere . 2003 . Quantifying the impact of input data sets on program behavior and its applications . Journal of Instruction-Level Parallelism 5 (2003), 1 -- 33 . L. Eeckhout, H. Vandierendonck, and K. De Bosschere. 2003. Quantifying the impact of input data sets on program behavior and its applications. Journal of Instruction-Level Parallelism 5 (2003), 1--33.","journal-title":"Journal of Instruction-Level Parallelism"},{"volume-title":"Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'92)","author":"Fisher J. A.","key":"e_1_2_1_13_1","unstructured":"J. A. Fisher and S. M. Freudenberger . 1992. Predicting conditional branch directions from previous runs of a program . In Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'92) . J. A. Fisher and S. M. Freudenberger. 1992. Predicting conditional branch directions from previous runs of a program. In Proceedings of the 5th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS'92)."},{"volume-title":"Workshop on Interaction between Compiler and Computer Architecture.","author":"Hashemi A. H.","key":"e_1_2_1_14_1","unstructured":"A. H. Hashemi , D. R. Kaeli , and B. Calder . 1997. Procedure mapping using static call graph estimation . In Workshop on Interaction between Compiler and Computer Architecture. A. H. Hashemi, D. R. Kaeli, and B. Calder. 1997. Procedure mapping using static call graph estimation. In Workshop on Interaction between Compiler and Computer Architecture."},{"volume-title":"Proceedings of ACM Workshop on Feedback-Directed and Dynamic Optimization.","author":"Hirzel M.","key":"e_1_2_1_15_1","unstructured":"M. Hirzel and T. M. Chilimbi . 2001. Bursty tracing: A framework for low-overhead temporal profiling . In Proceedings of ACM Workshop on Feedback-Directed and Dynamic Optimization. M. Hirzel and T. M. Chilimbi. 2001. Bursty tracing: A framework for low-overhead temporal profiling. In Proceedings of ACM Workshop on Feedback-Directed and Dynamic Optimization."},{"volume-title":"International Symposium on Code Generation and Optimization (CGO'10)","author":"Jiang Y.","key":"e_1_2_1_16_1","unstructured":"Y. Jiang , E. Z. Zhang , K. Tian , F. Mao , M. Gethers , and X. Shen . 2010. Exploiting statistical correlations for proactive prediction of program behaviors . In International Symposium on Code Generation and Optimization (CGO'10) . Y. Jiang, E. Z. Zhang, K. Tian, F. Mao, M. Gethers, and X. Shen. 2010. Exploiting statistical correlations for proactive prediction of program behaviors. In International Symposium on Code Generation and Optimization (CGO'10)."},{"volume-title":"Proceedings of the International Symposium on Code Generation and Optimization.","author":"Kim H.","key":"e_1_2_1_17_1","unstructured":"H. Kim , M. Aater Suleman , O. Mutlu , and Y. N. Patt . 2006. 2D-profiling: Detecting input-dependent branches with a single input data set . In Proceedings of the International Symposium on Code Generation and Optimization. H. Kim, M. Aater Suleman, O. Mutlu, and Y. N. Patt. 2006. 2D-profiling: Detecting input-dependent branches with a single input data set. In Proceedings of the International Symposium on Code Generation and Optimization."},{"key":"e_1_2_1_18_1","doi-asserted-by":"crossref","unstructured":"D. Knuth and F. Stevenson. 1973. BIT Numerical Mathematics 13 3 (1973) 313--322.  D. Knuth and F. Stevenson. 1973. BIT Numerical Mathematics 13 3 (1973) 313--322.","DOI":"10.1007\/BF01951942"},{"volume-title":"Proceedings of the Workshop on Duplicating, Deconstructing, and Debunking.","author":"Langdale G.","key":"e_1_2_1_19_1","unstructured":"G. Langdale and T. Gross . 2003. Evaluating the relationship between the usefulness and accuracy of profiles . In Proceedings of the Workshop on Duplicating, Deconstructing, and Debunking. G. Langdale and T. Gross. 2003. Evaluating the relationship between the usefulness and accuracy of profiles. In Proceedings of the Workshop on Duplicating, Deconstructing, and Debunking."},{"volume-title":"International Conference on Compiler Construction.","author":"Lee B.","key":"e_1_2_1_20_1","unstructured":"B. Lee , K. Resnick , M. D. Bond , and K. S. Mckinley . 2007. Correcting the dynamic call graph using control flow constraints . In International Conference on Compiler Construction. B. Lee, K. Resnick, M. D. Bond, and K. S. Mckinley. 2007. Correcting the dynamic call graph using control flow constraints. In International Conference on Compiler Construction."},{"volume-title":"Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques.","author":"Mousa H.","key":"e_1_2_1_21_1","unstructured":"H. Mousa and C. Krintz . 2005. HPS: Hybrid profiling support . In Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques. H. Mousa and C. Krintz. 2005. HPS: Hybrid profiling support. In Proceedings of the 14th International Conference on Parallel Architectures and Compilation Techniques."},{"volume-title":"Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation","author":"Mytkowicz T.","key":"e_1_2_1_22_1","unstructured":"T. Mytkowicz , A. Diwan , M. Hauswirth , and P. F. Sweeney . 2010. Evaluating the accuracy of Java profilers . In Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation . New York, NY. T. Mytkowicz, A. Diwan, M. Hauswirth, and P. F. Sweeney. 2010. Evaluating the accuracy of Java profilers. In Proceedings of the 2010 ACM SIGPLAN Conference on Programming Language Design and Implementation. New York, NY."},{"key":"e_1_2_1_23_1","volume-title":"Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium -","volume":"1","author":"Paleczny M.","unstructured":"M. Paleczny , C. Vick , and C. Click . 2001. The Java hotspotTM server compiler . In Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1 . M. Paleczny, C. Vick, and C. Click. 2001. The Java hotspotTM server compiler. In Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1."},{"volume-title":"Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation.","author":"Pettis K.","key":"e_1_2_1_24_1","unstructured":"K. Pettis and R. C. Hansen . 1990. Profile guided code positioning . In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation. K. Pettis and R. C. Hansen. 1990. Profile guided code positioning. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation."},{"volume-title":"Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages.","author":"Shen X.","key":"e_1_2_1_25_1","unstructured":"X. Shen , J. Shaw , B. Meeker , and C. Ding . 2007. Locality approximation using time . In Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. X. Shen, J. Shaw, B. Meeker, and C. Ding. 2007. Locality approximation using time. In Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages."},{"volume-title":"the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'10)","author":"Tian K.","key":"e_1_2_1_26_1","unstructured":"K. Tian , Y. Jiang , E. Zhang , and X. Shen . 2010. An input-centric paradigm for program dynamic optimizations . In the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'10) . K. Tian, Y. Jiang, E. Zhang, and X. Shen. 2010. An input-centric paradigm for program dynamic optimizations. In the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'10)."},{"volume-title":"the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA).","author":"Tian K.","key":"e_1_2_1_27_1","unstructured":"K. Tian , E. Zhang , and X. Shen . 2011. A step towards transparent integration of input-consciousness into dynamic program optimizations . In the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). K. Tian, E. Zhang, and X. Shen. 2011. A step towards transparent integration of input-consciousness into dynamic program optimizations. In the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)."},{"volume-title":"Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages.","author":"Vaswani K.","key":"e_1_2_1_28_1","unstructured":"K. Vaswani , A. V. Nori , and T. M. Chilimbi . 2007. Preferential path profiling: Compactly numbering interesting paths . In Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. K. Vaswani, A. V. Nori, and T. M. Chilimbi. 2007. Preferential path profiling: Compactly numbering interesting paths. In Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages."},{"volume-title":"Proceedings of the European Conference on Object-Oriented Programming. 654--678","author":"Wu B.","key":"e_1_2_1_29_1","unstructured":"B. Wu , M. Zhou , X. Shen , Y. Gao , R. Silvera , and G. Yiu . 2013. Simple profile rectifications go a long way . In Proceedings of the European Conference on Object-Oriented Programming. 654--678 . B. Wu, M. Zhou, X. Shen, Y. Gao, R. Silvera, and G. Yiu. 2013. Simple profile rectifications go a long way. In Proceedings of the European Conference on Object-Oriented Programming. 654--678."},{"key":"e_1_2_1_30_1","volume-title":"Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation.","author":"Wu Y.","year":"2002","unstructured":"Y. Wu . 2002 . Efficient discovery of regular stride patterns in irregular programs . In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation. Y. Wu. 2002. Efficient discovery of regular stride patterns in irregular programs. In Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation."},{"volume-title":"Proceedings of the 27th Annual International Symposium on Microarchitecture (MICRO'94)","author":"Wu Y.","key":"e_1_2_1_31_1","unstructured":"Y. Wu and J. R. Larus . 1994. Static branch frequency and program profile analysis . In Proceedings of the 27th Annual International Symposium on Microarchitecture (MICRO'94) . Y. Wu and J. R. Larus. 1994. Static branch frequency and program profile analysis. In Proceedings of the 27th Annual International Symposium on Microarchitecture (MICRO'94)."}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2851502","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2851502","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:39:15Z","timestamp":1750221555000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2851502"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2016,4,5]]},"references-count":31,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2016,4,5]]}},"alternative-id":["10.1145\/2851502"],"URL":"https:\/\/doi.org\/10.1145\/2851502","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2016,4,5]]},"assertion":[{"value":"2015-03-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2015-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2016-04-05","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}