Complexity-guided container replacement synthesis
Chengpeng Wang, Peisen Yao, Wensheng Tang, Qingkai Shi, Charles Zhang
Abstract
Containers, such as lists and maps, are fundamental data structures in modern programming languages. However, improper choice of container types may lead to significant performance issues. This paper presents Cres, an approach that automatically synthesizes container replacements to improve runtime performance. The synthesis algorithm works with static analysis techniques to identify how containers are utilized in the program, and attempts to select a method with lower time complexity for each container method call. Our approach can preserve program behavior and seize the opportunity of reducing execution time effectively for general inputs. We implement Cres and evaluate it on 12 real-world Java projects. It is shown that Cres synthesizes container replacements for the projects with 384.2 KLoC in 14 minutes and discovers six categories of container replacements, which can achieve an average performance improvement of 8.1%.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext a1c52feb-cd80-453c-9011-402d3589d59dCited by top-tier papers4
- Falcon: A Fused Approach to Path-Sensitive Sparse Data Dependence AnalysisPeisen Yao, Jinguo Zhou, Xiao Xiao, Qingkai Shi et al.PLDI 2024 · 11 citations
- Boosting Path-Sensitive Value Flow Analysis Via Removal of Redundant SummariesYongchao Wang, Yuandao Cai, Charles ZhangICSE 2025 · 1 citation
- Fast Constraint Synthesis for C++ Function TemplatesShuo Ding, Qirun ZhangOOPSLA 2025
- A Sound Static Analysis Approach to I/O API MigrationShangyu Li, Zhaoyang Zhang, Sizhe Zhong, Diyu Zhou et al.OOPSLA 2025
Builds on5
- SlowFuzz: Automated Domain-Independent Detection of Algorithmic Complexity VulnerabilitiesTheofilos Petsios, Jason Zhao, Angelos D. Keromytis, Suman JanaCCS 2017 · 214 citations
- MemLock: memory usage guided fuzzingCheng Wen, Haijun Wang, Yuekang Li, Shengchao Qin et al.ICSE 2020 · 116 citations
- Path-sensitive sparse analysis without path conditionsQingkai Shi, Peisen Yao, Rongxin Wu, Charles ZhangPLDI 2021 · 24 citations
- Synthesizing replacement classesMalavika Samak, Deokhwan Kim, Martin C. RinardPOPL 2020 · 14 citations
- Synthesizing data structure refinements from integrity constraintsShankara Pailoor, Yuepeng Wang, Xinyu Wang, Isil DilligPLDI 2021 · 10 citations
Related papers
- BYO: A Unified Framework for Benchmarking Large-Scale Graph ContainersBrian Wheatman, Xiaojun Dong, Zheqi Shen, Laxman Dhulipala et al.VLDB 2024 · 8 citations
- Automatic migration from synchronous to asynchronous JavaScript APIsSatyajit Gokhale, Alexi Turcotte, Frank TipOOPSLA 2021 · 23 citations
- Refactorings and Technical Debt in Docker Projects: An Empirical StudyEmna Ksontini, Marouane Kessentini, Thiago do Nascimento Ferreira, Foyzul HassanASE 2021 · 17 citations
- Eliminating abstraction overhead of Java stream pipelines using ahead-of-time program optimizationAnders Møller, Oskar Haarklou VeileborgOOPSLA 2020 · 9 citations
- On the recall of static call graph construction in practiceLi Sui, Jens Dietrich, Amjed Tahir, George FourtounisICSE 2020 · 34 citations
