{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,25]],"date-time":"2026-04-25T07:33:29Z","timestamp":1777102409361,"version":"3.51.4"},"reference-count":78,"publisher":"Association for Computing Machinery (ACM)","issue":"5","content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2026,5,31]]},"abstract":"<jats:p>\n                    Software performance modeling plays a crucial role in developing and maintaining software systems. A\u00a0performance model analytically describes the relationship between the performance of a system and its runtime activities. This process typically examines various aspects of a system\u2019s runtime behavior, such as the execution frequency of functions or methods, to forecast performance metrics like program execution time. By using performance models, developers can predict expected performance and thereby effectively identify and address unexpected performance regressions when actual performance deviates from the model\u2019s predictions. One common and precise method for capturing performance behavior is software tracing, which involves instrumenting the execution of a program, either at the kernel level (e.g., system calls) or application level (e.g., function calls). However, due to the nature of tracing, it can be highly resource-intensive, making it impractical for production environments where resources are limited. In this work, we propose statistical approaches to reduce tracing overhead by identifying and excluding performance-insensitive code regions, particularly application-level functions, from tracing while still building accurate performance models that can capture execution time degradations. We develop both dynamic methods that analyze runtime behavior patterns and static methods that examine code structure to identify performance-sensitive functions. Our methodology specifically targets execution time as the primary performance metric, building models that capture the relationship between function call frequencies and overall program latency. By selecting an optimal set of functions to be traced, we can construct optimized performance models that achieve an R\n                    <jats:sup>2<\/jats:sup>\n                    score of up to 99% and, in some cases, outperform full-tracing models (i.e., models using non-optimized tracing data), while significantly reducing the tracing overhead by more than 80% in most cases. Our optimized performance models can also effectively detect performance regressions in our studied programs, demonstrating their usefulness in distinguishing between normal workload variations and actual performance degradations. Finally, our approach is fully automated, making it ready to be used in production environments with minimal human effort.\n                  <\/jats:p>","DOI":"10.1145\/3749839","type":"journal-article","created":{"date-parts":[[2025,7,22]],"date-time":"2025-07-22T22:19:56Z","timestamp":1753222796000},"page":"1-43","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["Tracing Optimization for Performance Modeling and Regression Detection"],"prefix":"10.1145","volume":"35","author":[{"ORCID":"https:\/\/orcid.org\/0009-0001-4018-5113","authenticated-orcid":false,"given":"Kaveh","family":"Shahedi","sequence":"first","affiliation":[{"name":"Polytechnique Montr\u00e9al, Montreal, Quebec, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-5441-6763","authenticated-orcid":false,"given":"Heng","family":"Li","sequence":"additional","affiliation":[{"name":"Polytechnique Montr\u00e9al, Montreal, Quebec, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-3705-6238","authenticated-orcid":false,"given":"Maxime","family":"Lamothe","sequence":"additional","affiliation":[{"name":"Polytechnique Montr\u00e9al, Montreal, Quebec, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5704-4173","authenticated-orcid":false,"given":"Foutse","family":"Khomh","sequence":"additional","affiliation":[{"name":"Polytechnique Montr\u00e9al, Montreal, Quebec, Canada"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2026,4,24]]},"reference":[{"key":"e_1_3_3_2_2","unstructured":"Gperftools. 2023. Retrieved July 18 2023 from https:\/\/github.com\/gperftools\/gperftools"},{"key":"e_1_3_3_3_2","unstructured":"Perf. 2023. Retrieved July 18 2023 from https:\/\/perf.wiki.kernel.org\/"},{"key":"e_1_3_3_4_2","unstructured":"loessR Documentation. 2023. Retrieved June 12 2023 from https:\/\/www.rdocumentation.org\/packages\/stat s\/versions\/3.6.2\/topics\/loess"},{"key":"e_1_3_3_5_2","doi-asserted-by":"publisher","DOI":"10.1145\/2901739.2901774"},{"key":"e_1_3_3_6_2","unstructured":"Moez Ali. 2020. PyCaret: An Open Source Low-Code Machine Learning Library in Python. Retrieved from https:\/\/www.pycaret.org"},{"key":"e_1_3_3_7_2","first-page":"405","volume-title":"Proceedings of the 15th USENIX Symposium on Networked Systems Design and Implementation (NSDI \u2019","volume":"18","author":"Ardelean Dan","year":"2018","unstructured":"Dan Ardelean, Amer Diwan, and Chandra Erdman. 2018. Performance analysis of cloud applications. In Proceedings of the 15th USENIX Symposium on Networked Systems Design and Implementation (NSDI \u201918), 405\u2013417."},{"key":"e_1_3_3_8_2","doi-asserted-by":"publisher","DOI":"10.1145\/3357223.3362704"},{"key":"e_1_3_3_9_2","doi-asserted-by":"publisher","DOI":"10.1145\/183432.183527"},{"key":"e_1_3_3_10_2","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.1996.566449"},{"key":"e_1_3_3_11_2","doi-asserted-by":"publisher","DOI":"10.1145\/1998582.1998598"},{"key":"e_1_3_3_12_2","doi-asserted-by":"publisher","DOI":"10.1109\/AST58925.2023.00010"},{"key":"e_1_3_3_13_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICAC.2005.50"},{"key":"e_1_3_3_14_2","doi-asserted-by":"publisher","DOI":"10.1145\/1454115.1454128"},{"key":"e_1_3_3_15_2","volume-title":"Foundations of Software and System Performance Engineering: Process, Performance Modeling, Requirements, Testing, Scalability, and Practice","author":"Bondi Andr\u00e9 B.","year":"2015","unstructured":"Andr\u00e9 B. Bondi. 2015. Foundations of Software and System Performance Engineering: Process, Performance Modeling, Requirements, Testing, Scalability, and Practice. Pearson Education."},{"key":"e_1_3_3_16_2","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2011.6100052"},{"key":"e_1_3_3_17_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2015.08.030"},{"key":"e_1_3_3_18_2","doi-asserted-by":"publisher","DOI":"10.1145\/3185768.3185771"},{"key":"e_1_3_3_19_2","doi-asserted-by":"publisher","DOI":"10.1145\/2503210.2503277"},{"key":"e_1_3_3_20_2","first-page":"238","article-title":"Multiple fault localization with data mining","author":"Cellier Peggy","year":"2011","unstructured":"Peggy Cellier, Mireille Ducass\u00e9, S\u00e9bastien Ferr\u00e9, and Olivier Ridoux. 2011. Multiple fault localization with data mining. In Proceedings of the 23rd International Conference on Software Engineering and Knowledge Engineering (SEKE), 238\u2013243.","journal-title":"Proceedings of the 23rd International Conference on Software Engineering and Knowledge Engineering (SEKE)"},{"key":"e_1_3_3_21_2","doi-asserted-by":"publisher","DOI":"10.1145\/3510003.3510085"},{"key":"e_1_3_3_22_2","doi-asserted-by":"publisher","DOI":"10.4324\/9781315806730"},{"key":"e_1_3_3_23_2","doi-asserted-by":"publisher","DOI":"10.1145\/1274971.1274976"},{"key":"e_1_3_3_24_2","article-title":"Zstandard Compression and the application\/zstd Media Type","author":"Collet Yann","year":"2018","unstructured":"Yann Collet and Murray Kucherawy. 2018. Zstandard Compression and the application\/zstd Media Type. Technical Report.","journal-title":"Technical Report"},{"issue":"3","key":"e_1_3_3_25_2","first-page":"879","article-title":"Logram: Efficient log parsing using  \\( n \\)  n-gram dictionaries","volume":"48","author":"Dai Hetong","year":"2020","unstructured":"Hetong Dai, Heng Li, Che-Shao Chen, Weiyi Shang, and Tse-Hsun Chen. 2020. Logram: Efficient log parsing using \\( n \\) n-gram dictionaries. IEEE Transactions on Software Engineering 48, 3 (2020), 879\u2013892.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"e_1_3_3_26_2","doi-asserted-by":"publisher","DOI":"10.1145\/3639476.3639778"},{"key":"e_1_3_3_27_2","first-page":"209","volume-title":"Proceedings of the Ottawa Linux Symposium (OLS)","volume":"2006","author":"Desnoyers Mathieu","year":"2006","unstructured":"Mathieu Desnoyers and Michel R. Dagenais. 2006. The LTTng tracer: A low impact performance and behavior monitor for GNU\/Linux. In Proceedings of the Ottawa Linux Symposium (OLS), Vol. 2006. Citeseer, 209\u2013224."},{"key":"e_1_3_3_28_2","doi-asserted-by":"publisher","DOI":"10.1145\/2668930.2688047"},{"key":"e_1_3_3_29_2","doi-asserted-by":"publisher","DOI":"10.2514\/1.J053813"},{"key":"e_1_3_3_30_2","doi-asserted-by":"publisher","DOI":"10.1155\/2021\/8478076"},{"key":"e_1_3_3_31_2","doi-asserted-by":"publisher","DOI":"10.1109\/ISSRE.2015.7381796"},{"key":"e_1_3_3_32_2","unstructured":"Jay Fenlason and Richard Stallman. 1988. GNU gprof. GNU Binutils. Retrieved April 21 2018 from http:\/\/www. gnu. org\/software\/binutils"},{"key":"e_1_3_3_33_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2015.144"},{"key":"e_1_3_3_34_2","unstructured":"International Organization for Standardization (ISO). 2005. ISO\/IEC 25000:2005 Software Engineering\u2014Software Product Quality Requirements and Evaluation (SQuaRE). Retrieved November 28 2023 from https:\/\/www.iso.org\/standard\/35683.html"},{"key":"e_1_3_3_35_2","doi-asserted-by":"publisher","DOI":"10.1109\/MSR52588.2021.00025"},{"key":"e_1_3_3_36_2","doi-asserted-by":"publisher","DOI":"10.1145\/3640537.3641569"},{"key":"e_1_3_3_37_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICST.2016.9"},{"key":"e_1_3_3_38_2","doi-asserted-by":"publisher","DOI":"10.1145\/3158644"},{"key":"e_1_3_3_39_2","doi-asserted-by":"publisher","DOI":"10.1109\/CNSM.2010.5691343"},{"key":"e_1_3_3_40_2","doi-asserted-by":"publisher","DOI":"10.1145\/1186736.1186737"},{"key":"e_1_3_3_41_2","unstructured":"Richard D. Hipp. 2025. SQLite. Retrieved March 4 2025 from https:\/\/www.sqlite.org\/index.html"},{"key":"e_1_3_3_42_2","doi-asserted-by":"publisher","DOI":"10.1145\/3472883.3486994"},{"key":"e_1_3_3_43_2","doi-asserted-by":"publisher","DOI":"10.1007\/11549468_24"},{"key":"e_1_3_3_44_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2006.07.019"},{"key":"e_1_3_3_45_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2015.2445340"},{"key":"e_1_3_3_46_2","doi-asserted-by":"publisher","DOI":"10.1145\/582034.582071"},{"key":"e_1_3_3_47_2","doi-asserted-by":"publisher","DOI":"10.1109\/SERA57763.2023.10197790"},{"key":"e_1_3_3_48_2","unstructured":"Namhyung Kim. 2024. uftrace: Function Graph Tracer for C\/C++\/Rust. Retrieved January 19 2024 from https:\/\/github.com\/namhyung\/uftrace\/"},{"key":"e_1_3_3_49_2","doi-asserted-by":"publisher","DOI":"10.1007\/BF01951942"},{"key":"e_1_3_3_50_2","doi-asserted-by":"publisher","DOI":"10.1145\/1108768.1108801"},{"key":"e_1_3_3_51_2","doi-asserted-by":"publisher","DOI":"10.1109\/ProTools49597.2019.00011"},{"key":"e_1_3_3_52_2","doi-asserted-by":"publisher","DOI":"10.1145\/3281070.3281071"},{"key":"e_1_3_3_53_2","doi-asserted-by":"publisher","DOI":"10.1007\/s10664-020-09866-z"},{"issue":"12","key":"e_1_3_3_54_2","first-page":"4986","article-title":"Locating performance regression root causes in the field operations of web-based systems: An experience report","volume":"48","author":"Liao Lizhi","year":"2021","unstructured":"Lizhi Liao, Jinfu Chen, Heng Li, Yi Zeng, Weiyi Shang, Catalin Sporea, Andrei Toma, and Sarah Sajedi. 2021. Locating performance regression root causes in the field operations of web-based systems: An experience report. IEEE Transactions on Software Engineering 48, 12 (2021), 4986\u20135006.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"e_1_3_3_55_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICDM.2014.96"},{"key":"e_1_3_3_56_2","doi-asserted-by":"publisher","DOI":"10.5555\/2486788.2486927"},{"key":"e_1_3_3_57_2","first-page":"65","volume-title":"Proceedings of the European Conference on Parallel Processing","author":"Mu\u00dfler Jan","year":"2011","unstructured":"Jan Mu\u00dfler, Daniel Lorenz, and Felix Wolf. 2011. Reducing the overhead of direct application instrumentation using prior static analysis. In Proceedings of the European Conference on Parallel Processing. Springer, 65\u201376."},{"key":"e_1_3_3_58_2","doi-asserted-by":"publisher","DOI":"10.20982\/tqmp.04.1.p013"},{"key":"e_1_3_3_59_2","doi-asserted-by":"publisher","DOI":"10.1145\/2188286.2188344"},{"key":"e_1_3_3_60_2","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2019.2927908"},{"key":"e_1_3_3_61_2","doi-asserted-by":"publisher","DOI":"10.1098\/rsta.1896.0007"},{"key":"e_1_3_3_62_2","unstructured":"The OpenSSL Project. 2025. OpenSSL: The Open Source Toolkit for SSL\/TLS. Retrieved July 19 2025 from https:\/\/www.openssl.org\/"},{"key":"e_1_3_3_63_2","doi-asserted-by":"publisher","DOI":"10.1093\/biomet\/66.3.605"},{"key":"e_1_3_3_64_2","doi-asserted-by":"publisher","DOI":"10.1145\/2668930.2688052"},{"key":"e_1_3_3_65_2","doi-asserted-by":"publisher","DOI":"10.1002\/j.1538-7305.1948.tb01338.x"},{"key":"e_1_3_3_66_2","doi-asserted-by":"publisher","DOI":"10.2307\/2333709"},{"key":"e_1_3_3_67_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-72522-0_10"},{"key":"e_1_3_3_68_2","volume-title":"Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software","author":"Smith Connie U.","year":"2002","unstructured":"Connie U. Smith and Lloyd G. Williams. 2002. Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software, Vol. 23. Addison-Wesley Reading."},{"key":"e_1_3_3_69_2","doi-asserted-by":"publisher","DOI":"10.2307\/1422689"},{"key":"e_1_3_3_70_2","doi-asserted-by":"publisher","DOI":"10.1109\/ICSM.2013.22"},{"key":"e_1_3_3_71_2","doi-asserted-by":"publisher","DOI":"10.32614\/RJ-2011-015"},{"key":"e_1_3_3_72_2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-031-20984-0_5"},{"key":"e_1_3_3_73_2","doi-asserted-by":"publisher","DOI":"10.1145\/3295500.3356213"},{"key":"e_1_3_3_74_2","doi-asserted-by":"publisher","DOI":"10.1145\/2479871.2479909"},{"key":"e_1_3_3_75_2","doi-asserted-by":"publisher","DOI":"10.1145\/3180155.3180194"},{"key":"e_1_3_3_76_2","doi-asserted-by":"publisher","DOI":"10.1145\/3184407.3184416"},{"key":"e_1_3_3_77_2","doi-asserted-by":"publisher","DOI":"10.1145\/1837853.1693493"},{"key":"e_1_3_3_78_2","doi-asserted-by":"publisher","DOI":"10.1109\/DSN.2005.44"},{"key":"e_1_3_3_79_2","doi-asserted-by":"publisher","DOI":"10.1145\/3440757"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3749839","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,25]],"date-time":"2026-04-25T06:33:59Z","timestamp":1777098839000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3749839"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,4,24]]},"references-count":78,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2026,5,31]]}},"alternative-id":["10.1145\/3749839"],"URL":"https:\/\/doi.org\/10.1145\/3749839","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2026,4,24]]},"assertion":[{"value":"2024-10-31","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2025-07-13","order":2,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2026-04-24","order":3,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}