{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,11]],"date-time":"2026-02-11T16:16:16Z","timestamp":1770826576651,"version":"3.50.1"},"reference-count":63,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2023,4,4]],"date-time":"2023-04-04T00:00:00Z","timestamp":1680566400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Wallenberg AI, Autonomous Systems, and Software Program"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Softw. Eng. Methodol."],"published-print":{"date-parts":[[2023,4,30]]},"abstract":"<jats:p>Software bloat is code that is packaged in an application but is actually not necessary to run the application. The presence of software bloat is an issue for security, performance, and for maintenance. In this article, we introduce a novel technique for debloating, which we call coverage-based debloating. We implement the technique for one single language: Java bytecode. We leverage a combination of state-of-the-art Java bytecode coverage tools to precisely capture what parts of a project and its dependencies are used when running with a specific workload. Then, we automatically remove the parts that are not covered, in order to generate a debloated version of the project. We succeed to debloat 211\u00a0library versions from a dataset of 94 unique \u00a0open-source Java libraries. The debloated versions are syntactically correct and preserve their original behaviour according to the workload. Our results indicate that 68.3% of the libraries\u2019 bytecode and 20.3% of their total dependencies can be removed through coverage-based debloating.<\/jats:p>\n          <jats:p>For the first time in the literature on software debloating, we assess the utility of debloated libraries with respect to client applications that reuse them. We select 988 client projects that either have a direct reference to the debloated library in their source code or which test suite covers at least one class of the libraries that we debloat. Our results show that 81.5% of the clients, with at least one test that uses the library, successfully compile and pass their test suite when the original library is replaced by its debloated version.<\/jats:p>","DOI":"10.1145\/3546948","type":"journal-article","created":{"date-parts":[[2022,7,6]],"date-time":"2022-07-06T09:33:41Z","timestamp":1657100021000},"page":"1-34","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":18,"title":["Coverage-Based Debloating for Java Bytecode"],"prefix":"10.1145","volume":"32","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-0541-6411","authenticated-orcid":false,"given":"C\u00e9sar","family":"Soto-Valero","sequence":"first","affiliation":[{"name":"KTH Royal Institute of Technology"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-1996-6134","authenticated-orcid":false,"given":"Thomas","family":"Durieux","sequence":"additional","affiliation":[{"name":"KTH Royal Institute of Technology"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-2491-2771","authenticated-orcid":false,"given":"Nicolas","family":"Harrand","sequence":"additional","affiliation":[{"name":"KTH Royal Institute of Technology"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-4015-4640","authenticated-orcid":false,"given":"Benoit","family":"Baudry","sequence":"additional","affiliation":[{"name":"KTH Royal Institute of Technology"}]}],"member":"320","published-online":{"date-parts":[[2023,4,4]]},"reference":[{"issue":"4","key":"e_1_3_2_2_2","first-page":"28","article-title":"Large-scale debloating of binary shared libraries","volume":"1","author":"Agadakos Ioannis","year":"2020","unstructured":"Ioannis Agadakos, Nicholas Demarinis, Di Jin, Kent Williams-King, Jearson Alfajardo, Benjamin Shteinfeld, David Williams-King, Vasileios P. Kemerlis, and Georgios Portokalidis. 2020. Large-scale debloating of binary shared libraries. Digital Threats: Research and Practice 1, 4(2020), 28 pages.","journal-title":"Digital Threats: Research and Practice"},{"issue":"6","key":"e_1_3_2_3_2","doi-asserted-by":"crossref","first-page":"246","DOI":"10.1145\/93548.93576","article-title":"Dynamic program slicing","volume":"25","author":"Agrawal Hiralal","year":"1990","unstructured":"Hiralal Agrawal and Joseph R. Horgan. 1990. Dynamic program slicing. SIGPLAN Notices 25, 6(1990), 246\u2013256.","journal-title":"SIGPLAN Notices"},{"key":"e_1_3_2_4_2","first-page":"1697","volume-title":"Proceedings of the USENIX Security Symposium","author":"Azad Babak Amin","year":"2019","unstructured":"Babak Amin Azad, Pierre Laperdrix, and Nick Nikiforakis. 2019. Less is more: Quantifying the security benefits of debloating web applications. In Proceedings of the USENIX Security Symposium. 1697\u20131714."},{"issue":"10","key":"e_1_3_2_5_2","doi-asserted-by":"crossref","first-page":"83","DOI":"10.1145\/2714064.2660212","article-title":"Phosphor: Illuminating dynamic data flow in commodity JVMs","volume":"49","author":"Bell Jonathan","year":"2014","unstructured":"Jonathan Bell and Gail Kaiser. 2014. Phosphor: Illuminating dynamic data flow in commodity JVMs. ACM SIGPLAN Notices 49, 10 (2014), 83\u2013101.","journal-title":"ACM SIGPLAN Notices"},{"key":"e_1_3_2_6_2","first-page":"745","volume-title":"Proceedings of the OOPSLA","author":"Bhattacharya Suparna","year":"2013","unstructured":"Suparna Bhattacharya, Kanchi Gopinath, and Mangala Gowri Nanda. 2013. Combining concern input with program analysis for bloat detection. In Proceedings of the OOPSLA. 745\u2013764."},{"key":"e_1_3_2_7_2","first-page":"135","volume-title":"Proceedings of the Symposium on Principles and Practice of Programming in Java","author":"Binder Walter","year":"2007","unstructured":"Walter Binder, Jarle Hulaas, and Philippe Moret. 2007. Advanced java bytecode instrumentation. In Proceedings of the Symposium on Principles and Practice of Programming in Java. 135\u2013144."},{"key":"e_1_3_2_8_2","doi-asserted-by":"crossref","first-page":"112","DOI":"10.1016\/j.jss.2018.09.016","article-title":"What\u2019s in a github star? Understanding repository starring practices in a social coding platform","volume":"146","author":"Borges Hudson","year":"2018","unstructured":"Hudson Borges and Marco Tulio Valente. 2018. What\u2019s in a github star? Understanding repository starring practices in a social coding platform. Journal of Systems and Software 146 (2018), 112\u2013129.","journal-title":"Journal of Systems and Software"},{"key":"e_1_3_2_9_2","first-page":"135","volume-title":"Proceedings of the ESEC\/FSE","author":"Bruce Bobby R.","year":"2020","unstructured":"Bobby R. Bruce, Tianyi Zhang, Jaspreet Arora, Guoqing Harry Xu, and Miryung Kim. 2020. JShrink: In-depth investigation into debloating modern java applications. In Proceedings of the ESEC\/FSE. 135\u2013146."},{"key":"e_1_3_2_10_2","first-page":"643","volume-title":"Proceedings of the ESEC\/FSE","author":"Celik Ahmet","year":"2016","unstructured":"Ahmet Celik, Alex Knaust, Aleksandar Milicevic, and Milos Gligoric. 2016. Build system with lazy retrieval for java projects. In Proceedings of the ESEC\/FSE. 643\u2013654."},{"key":"e_1_3_2_11_2","first-page":"112","volume-title":"Proceedings of the ICSE","author":"Chen Lingchao","year":"2020","unstructured":"Lingchao Chen, Foyzul Hassan, Xiaoyin Wang, and Lingming Zhang. 2020. Taming behavioral backward incompatibilities via cross-project testing and analysis. In Proceedings of the ICSE. 112\u2013124."},{"key":"e_1_3_2_12_2","first-page":"23","volume-title":"Proceedings of the FEAST Workshop","author":"Chen Yurong","year":"2017","unstructured":"Yurong Chen, Tian Lan, and Guru Venkataramani. 2017. DamGate: Dynamic adaptive multi-feature gating in program binaries. In Proceedings of the FEAST Workshop. 23\u201329."},{"issue":"5","key":"e_1_3_2_13_2","doi-asserted-by":"crossref","first-page":"684","DOI":"10.1109\/TSE.2009.28","article-title":"A systematic survey of program comprehension through dynamic analysis","volume":"35","author":"Cornelissen B.","year":"2009","unstructured":"B. Cornelissen, A. Zaidman, A. van Deursen, L. Moonen, and R. Koschke. 2009. A systematic survey of program comprehension through dynamic analysis. IEEE Transactions on Software Engineering 35, 5 (2009), 684\u2013702.","journal-title":"IEEE Transactions on Software Engineering"},{"key":"e_1_3_2_14_2","unstructured":"DiUS. 2022. Brings the Popular Ruby Faker Gem to Java. Retrieved November 21st 2021 from https:\/\/github.com\/DiUS\/java-faker."},{"key":"e_1_3_2_15_2","first-page":"545","volume-title":"Proceedings of the MSR","author":"Durieux Thomas","year":"2021","unstructured":"Thomas Durieux, C\u00e9sar Soto-Valero, and Benoit Baudry. 2021. DUETS: A dataset of reproducible pairs of java library-clients. In Proceedings of the MSR. 545\u2013549."},{"key":"e_1_3_2_16_2","first-page":"446","volume-title":"Proceedings of the ICSME","author":"Eder Sebastian","year":"2014","unstructured":"Sebastian Eder, Henning Femmer, Benedikt Hauptmann, and Maximilian Junker. 2014. Which features do my users (Not) use?. In Proceedings of the ICSME. 446\u2013450."},{"key":"e_1_3_2_17_2","doi-asserted-by":"crossref","unstructured":"Andreas Gal Brendan Eich Mike Shaver David Anderson David Mandelin Mohammad R. Haghighat Blake Kaplan Graydon Hoare Boris Zbarsky Jason Orendorff Jesse Ruderman Edwin W. Smith Rick Reitmaier Michael Bebenita Mason Chang and Michael Franz. 2009. Trace-based just-in-time type specialization for dynamic languages. ACM SIGPLAN Notices 44 6 (2009) 465\u2013478.","DOI":"10.1145\/1543135.1542528"},{"key":"e_1_3_2_18_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2020.110653"},{"issue":"4","key":"e_1_3_2_19_2","first-page":"56","article-title":"How far have we progressed in identifying self-admitted technical debts? A comprehensive empirical study","volume":"30","author":"Guo Zhaoqiang","year":"2021","unstructured":"Zhaoqiang Guo, Shiran Liu, Jinping Liu, Yanhui Li, Lin Chen, Hongmin Lu, and Yuming Zhou. 2021. How far have we progressed in identifying self-admitted technical debts? A comprehensive empirical study. ACM Transactions on Software Engineering and Methodology 30, 4(2021), 56 pages.","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"issue":"1","key":"e_1_3_2_20_2","article-title":"Is static analysis able to identify unnecessary source code?","volume":"29","author":"Haas Roman","year":"2020","unstructured":"Roman Haas, Rainer Niedermayr, Tobias Roehm, and Sven Apel. 2020. Is static analysis able to identify unnecessary source code? ACM Transactions on Software Engineering and Methodology 29, 1 (2020), 1\u201311.","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"e_1_3_2_21_2","unstructured":"Brian Heath Neelay Velingker Osbert Bastani and Mayur Naik. 2019. PolyDroid: Learning-driven specialization of mobile applications. arXiv:1902.09589. Retrieved from https:\/\/arxiv.org\/abs\/1902.09589."},{"key":"e_1_3_2_22_2","first-page":"380","volume-title":"Proceedings of the CCS","author":"Heo Kihong","year":"2018","unstructured":"Kihong Heo, Woosuk Lee, Pardis Pashakhanloo, and Mayur Naik. 2018. Effective program debloating via reinforcement learning. In Proceedings of the CCS. 380\u2013394."},{"key":"e_1_3_2_23_2","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2015.40"},{"key":"e_1_3_2_24_2","doi-asserted-by":"publisher","DOI":"10.1007\/s11219-017-9389-z"},{"key":"e_1_3_2_25_2","volume-title":"Proceedings of the CGO","author":"Inoue Hiroshi","year":"2011","unstructured":"Hiroshi Inoue, Hiroshige Hayashizaki, Peng Wu, and Toshio Nakatani. 2011. A trace-based Java JIT compiler retrofitted from a method-based compiler. In Proceedings of the CGO."},{"key":"e_1_3_2_26_2","first-page":"189","volume-title":"Proceedings of the ISSRE","author":"Jiang Y.","year":"2018","unstructured":"Y. Jiang, Q. Bao, S. Wang, X. Liu, and D. Wu. 2018. RedDroid: Android application redundancy customization based on static analysis. In Proceedings of the ISSRE. 189\u2013199."},{"key":"e_1_3_2_27_2","first-page":"12","volume-title":"Proceedings of the COMPSAC","author":"Jiang Y.","year":"2016","unstructured":"Y. Jiang, D. Wu, and P. Liu. 2016. JRed: Program customization and bloatware mitigation based on static analysis. In Proceedings of the COMPSAC. 12\u201321."},{"key":"e_1_3_2_28_2","first-page":"122","volume-title":"Proceedings of the HASE","author":"Jiang Y.","year":"2016","unstructured":"Y. Jiang, C. Zhang, D. Wu, and P. Liu. 2016. Feature-based software customization: Preliminary analysis, formalization, and methods. In Proceedings of the HASE. 122\u2013131."},{"key":"e_1_3_2_29_2","first-page":"556","volume-title":"Proceedings of the ESEC\/FSE","author":"Kalhauge Christian Gram","year":"2019","unstructured":"Christian Gram Kalhauge and Jens Palsberg. 2019. Binary reduction of dependency graphs. In Proceedings of the ESEC\/FSE. 556\u2013566."},{"issue":"1","key":"e_1_3_2_30_2","first-page":"1","article-title":"Beanplot: A boxplot alternative for visual comparison of distributions","volume":"28","author":"Kampstra Peter","year":"2008","unstructured":"Peter Kampstra. 2008. Beanplot: A boxplot alternative for visual comparison of distributions. Journal of Statistical Software 28, 1 (2008), 1\u20139.","journal-title":"Journal of Statistical Software"},{"key":"e_1_3_2_31_2","volume-title":"Proceedings of the EuroSec Workshop","author":"Koo Hyungjoon","year":"2019","unstructured":"Hyungjoon Koo, Seyedhamed Ghavamnia, and Michalis Polychronakis. 2019. Configuration-driven software debloating. In Proceedings of the EuroSec Workshop."},{"key":"e_1_3_2_32_2","first-page":"507","volume-title":"Proceedings of the ICSE","author":"Landman Davy","year":"2017","unstructured":"Davy Landman, Alexander Serebrenik, and Jurgen J. Vinju. 2017. Challenges for static analysis of java reflection: Literature review and empirical study. In Proceedings of the ICSE. 507\u2013518."},{"key":"e_1_3_2_33_2","first-page":"380","volume-title":"Proceedings of the ISSRE","author":"Li Nan","year":"2013","unstructured":"Nan Li, Xin Meng, Jeff Offutt, and Lin Deng. 2013. Is bytecode instrumentation as good as source code instrumentation: An empirical study with industrial tools. In Proceedings of the ISSRE. 380\u2013389."},{"key":"e_1_3_2_34_2","volume-title":"The Java Virtual Machine Specification","author":"Lindholm Tim","year":"2014","unstructured":"Tim Lindholm, Frank Yellin, Gilad Bracha, and Alex Buckley. 2014. The Java Virtual Machine Specification. Pearson Education."},{"issue":"3","key":"e_1_3_2_35_2","doi-asserted-by":"crossref","first-page":"32","DOI":"10.1007\/s10664-020-09926-4","article-title":"The nature of build changes","volume":"26","author":"Macho Christian","year":"2021","unstructured":"Christian Macho, Stefanie Beyer, Shane McIntosh, and Martin Pinzger. 2021. The nature of build changes. Empirical Software Engineering 26, 3(2021), 32.","journal-title":"Empirical Software Engineering"},{"issue":"1","key":"e_1_3_2_36_2","doi-asserted-by":"crossref","first-page":"56","DOI":"10.1109\/MS.2010.7","article-title":"Four trends leading to Java runtime bloat","volume":"27","author":"Mitchell Nick","year":"2009","unstructured":"Nick Mitchell, Edith Schonberg, and Gary Sevitsky. 2009. Four trends leading to Java runtime bloat. IEEE Software 27, 1 (2009), 56\u201363.","journal-title":"IEEE Software"},{"key":"e_1_3_2_37_2","doi-asserted-by":"publisher","DOI":"10.1109\/MS.2010.7"},{"key":"e_1_3_2_38_2","unstructured":"Girish Mururu Chris Porter Prithayan Barua and Santosh Pande. 2019. Binary debloating for security via demand driven loading. arXiv:1902.06570. Retrieved from https:\/\/arxiv.org\/abs\/1902.06570."},{"issue":"4","key":"e_1_3_2_39_2","first-page":"41","article-title":"Understanding and combating memory bloat in managed data-intensive systems","volume":"26","author":"Nguyen Khanh","year":"2018","unstructured":"Khanh Nguyen, Kai Wang, Yingyi Bu, Lu Fang, and Guoqing Xu. 2018. Understanding and combating memory bloat in managed data-intensive systems. ACM Transactions on Software Engineering and Methodology 26, 4(2018), 41 pages.","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"e_1_3_2_40_2","first-page":"268","volume-title":"Proceedings of the ESEC\/FSE","author":"Nguyen Khanh","year":"2013","unstructured":"Khanh Nguyen and Guoqing Xu. 2013. Cachetor: Detecting cacheable data to remove bloat. In Proceedings of the ESEC\/FSE. 268\u2013278."},{"issue":"4","key":"e_1_3_2_41_2","first-page":"41","article-title":"Dynamic dependence summaries","volume":"25","author":"Palepu Vijay Krishna","year":"2017","unstructured":"Vijay Krishna Palepu, Guoqing Xu, and James A. Jones. 2017. Dynamic dependence summaries. ACM Transactions on Software Engineering and Methodology 25, 4, (2017), 41 pages.","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"e_1_3_2_42_2","first-page":"555","volume-title":"Proceedings of the ICSME","author":"Ponta S.","year":"2021","unstructured":"S. Ponta, W. Fischer, H. Plate, and A. Sabetta. 2021. The used, the bloated, and the vulnerable: Reducing the attack surface of an industrial application. In Proceedings of the ICSME. 555\u2013558."},{"key":"e_1_3_2_43_2","first-page":"1733","volume-title":"Proceedings of the USENIX Security Symposium","author":"Qian Chenxiong","year":"2019","unstructured":"Chenxiong Qian, Hong Hu, Mansour Alharthi, Pak Ho Chung, Taesoo Kim, and Wenke Lee. 2019. RAZOR: A framework for post-deployment software debloating. In Proceedings of the USENIX Security Symposium. 1733\u20131750."},{"key":"e_1_3_2_44_2","first-page":"65","volume-title":"Proceedings of the FEAST Workshop","author":"Quach Anh","year":"2017","unstructured":"Anh Quach, Rukayat Erinfolami, David Demicco, and Aravind Prakash. 2017. A multi-OS cross-layer study of bloating in user programs, kernel, and managed execution environments. In Proceedings of the FEAST Workshop. 65\u201370."},{"key":"e_1_3_2_45_2","first-page":"476","volume-title":"Proceedings of the ESEC\/FSE","author":"Rastogi Vaibhav","year":"2017","unstructured":"Vaibhav Rastogi, Drew Davidson, Lorenzo De Carli, Somesh Jha, and Patrick McDaniel. 2017. Cimplifier: Automatically debloating containers. In Proceedings of the ESEC\/FSE. 476\u2013486."},{"issue":"4","key":"e_1_3_2_46_2","doi-asserted-by":"crossref","first-page":"452","DOI":"10.1145\/778559.778561","article-title":"Automatic program specialization for java","volume":"25","author":"Schultz Ulrik P.","year":"2003","unstructured":"Ulrik P. Schultz, Julia L. Lawall, and Charles Consel. 2003. Automatic program specialization for java. ACM Transactions on Programming Languages and Systems 25, 4 + (2003), 452\u2013499.","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"e_1_3_2_47_2","first-page":"329","volume-title":"Proceedings of the ASE","author":"Sharif Hashim","year":"2018","unstructured":"Hashim Sharif, Muhammad Abubakar, Ashish Gehani, and Fareed Zaffar. 2018. TRIMMER: Application specialization for code debloating. In Proceedings of the ASE. 329\u2013339."},{"key":"e_1_3_2_48_2","unstructured":"C\u00e9sar Soto-Valero. 2022. Open-science repository for the experiments with JDBL. Retrieved November 21st 2021 from https:\/\/github.com\/castor-software\/jdbl-experiments."},{"key":"e_1_3_2_49_2","first-page":"333","volume-title":"Proceedings of the MSR","author":"Soto-Valero C\u00e9sar","year":"2019","unstructured":"C\u00e9sar Soto-Valero, Amine Benelallam, Nicolas Harrand, Olivier Barais, and Benoit Baudry. 2019. The emergence of software diversity in maven central. In Proceedings of the MSR. 333\u2013343."},{"key":"e_1_3_2_50_2","first-page":"1021","volume-title":"Proceedings of the ESEC\/FSE","author":"Soto-Valero C\u00e9sar","year":"2021","unstructured":"C\u00e9sar Soto-Valero, Thomas Durieux, and Benoit Baudry. 2021. A longitudinal analysis of bloated java dependencies. In Proceedings of the ESEC\/FSE. 1021\u20131031."},{"issue":"3","key":"e_1_3_2_51_2","doi-asserted-by":"crossref","first-page":"45","DOI":"10.1007\/s10664-020-09914-8","article-title":"A comprehensive study of bloated dependencies in the maven ecosystem","volume":"26","author":"Soto-Valero C\u00e9sar","year":"2021","unstructured":"C\u00e9sar Soto-Valero, Nicolas Harrand, Martin Monperrus, and Benoit Baudry. 2021. A comprehensive study of bloated dependencies in the maven ecosystem. Empirical Software Engineering 26, 3(2021), 45.","journal-title":"Empirical Software Engineering"},{"key":"e_1_3_2_52_2","doi-asserted-by":"crossref","first-page":"69","DOI":"10.1007\/978-3-030-02768-1_4","volume-title":"Proceedings of the Programming Languages and Systems","author":"Sui Li","year":"2018","unstructured":"Li Sui, Jens Dietrich, Michael Emery, Shawn Rasheed, and Amjed Tahir. 2018. On the soundness of call graph construction in the presence of dynamic language features\u2014a benchmark and tool evaluation. In Proceedings of the Programming Languages and Systems. Sukyoung Ryu (Ed.), 69\u201388."},{"key":"e_1_3_2_53_2","first-page":"225","volume-title":"Proceedings of the SANER.","author":"Tengeri D\u00e1vid","year":"2016","unstructured":"D\u00e1vid Tengeri, Ferenc Horv\u00e1th, \u00c1rp\u00e1d Besz\u00e9des, Tam\u00e1s Gergely, and Tibor Gyim\u00f3thy. 2016. Negative effects of bytecode instrumentation on java source code coverage. In Proceedings of the SANER.225\u2013235."},{"key":"e_1_3_2_54_2","first-page":"292","volume-title":"Proceedings of the OOPSLA","author":"Tip Frank","year":"1999","unstructured":"Frank Tip, Chris Laffra, Peter F. Sweeney, and David Streeter. 1999. Practical experience with an application extractor for java. In Proceedings of the OOPSLA. 292\u2013305."},{"key":"e_1_3_2_55_2","doi-asserted-by":"publisher","DOI":"10.1145\/586088.586090"},{"key":"e_1_3_2_56_2","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2018.10.009"},{"key":"e_1_3_2_57_2","doi-asserted-by":"publisher","DOI":"10.1109\/2.348001"},{"key":"e_1_3_2_58_2","first-page":"35","volume-title":"Proceedings of the MOBILESoft","author":"Xin Qi","year":"2019","unstructured":"Qi Xin, Farnaz Behrang, Mattia Fazzini, and Alessandro Orso. 2019. Identifying features of android apps from execution traces. In Proceedings of the MOBILESoft. 35\u201339."},{"key":"e_1_3_2_59_2","first-page":"1","volume-title":"Proceedings of the ECOOP","author":"Xu Guoqing","year":"2013","unstructured":"Guoqing Xu. 2013. CoCo: Sound and adaptive replacement of java collections. In Proceedings of the ECOOP. 1\u201326."},{"issue":"3","key":"e_1_3_2_60_2","first-page":"50","article-title":"Scalable runtime bloat detection using abstract dynamic slicing","volume":"23","author":"Xu Guoqing","year":"2014","unstructured":"Guoqing Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, Edith Schonberg, and Gary Sevitsky. 2014. Scalable runtime bloat detection using abstract dynamic slicing. ACM Transactions on Software Engineering and Methodology 23, 3(2014), 50 pages.","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"e_1_3_2_61_2","first-page":"421","volume-title":"Proceedings of the FoSER","author":"Xu Guoqing","year":"2010","unstructured":"Guoqing Xu, Nick Mitchell, Matthew Arnold, Atanas Rountev, and Gary Sevitsky. 2010. Software bloat analysis: Finding, removing, and preventing performance problems in modern large-scale object-oriented applications. In Proceedings of the FoSER. 421\u2013426."},{"key":"e_1_3_2_62_2","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/bxm021"},{"issue":"4","key":"e_1_3_2_63_2","doi-asserted-by":"crossref","first-page":"319","DOI":"10.1109\/TSE.2017.2782280","article-title":"An empirical study on API usages","volume":"45","author":"Zhong Hao","year":"2019","unstructured":"Hao Zhong and Hong Mei. 2019. An empirical study on API usages. IEEE Transactions on Software Engineering 45, 4 (2019), 319\u2013334.","journal-title":"IEEE Transactions on Software Engineering"},{"issue":"5","key":"e_1_3_2_64_2","article-title":"Honey, I shrunk the ELFs: Lightweight binary tailoring of shared libraries","volume":"18","author":"Ziegler Andreas","year":"2019","unstructured":"Andreas Ziegler, Julian Geus, Bernhard Heinloth, Timo H\u00f6nig, and Daniel Lohmann. 2019. Honey, I shrunk the ELFs: Lightweight binary tailoring of shared libraries. ACM Transactions on Embedded Computing Systems 18, 5 (2019), 1\u201318.","journal-title":"ACM Transactions on Embedded Computing Systems"}],"container-title":["ACM Transactions on Software Engineering and Methodology"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3546948","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3546948","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T19:00:42Z","timestamp":1750186842000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3546948"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2023,4,4]]},"references-count":63,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2023,4,30]]}},"alternative-id":["10.1145\/3546948"],"URL":"https:\/\/doi.org\/10.1145\/3546948","relation":{},"ISSN":["1049-331X","1557-7392"],"issn-type":[{"value":"1049-331X","type":"print"},{"value":"1557-7392","type":"electronic"}],"subject":[],"published":{"date-parts":[[2023,4,4]]},"assertion":[{"value":"2021-12-08","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2022-06-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2023-04-04","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}