Complexity-guided container replacement synthesis
Chengpeng Wang, Peisen Yao, Wensheng Tang, Qingkai Shi, Charles Zhang
摘要
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%.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper4
- Falcon: A Fused Approach to Path-Sensitive Sparse Data Dependence AnalysisPeisen Yao, Jinguo Zhou, Xiao Xiao, Qingkai Shi 等PLDI 2024 · 被引用 11 次
- Boosting Path-Sensitive Value Flow Analysis Via Removal of Redundant SummariesYongchao Wang, Yuandao Cai, Charles ZhangICSE 2025 · 被引用 1 次
- 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 等OOPSLA 2025
它引用的顶会 Paper5
- SlowFuzz: Automated Domain-Independent Detection of Algorithmic Complexity VulnerabilitiesTheofilos Petsios, Jason Zhao, Angelos D. Keromytis, Suman JanaCCS 2017 · 被引用 214 次
- MemLock: memory usage guided fuzzingCheng Wen, Haijun Wang, Yuekang Li, Shengchao Qin 等ICSE 2020 · 被引用 116 次
- Path-sensitive sparse analysis without path conditionsQingkai Shi, Peisen Yao, Rongxin Wu, Charles ZhangPLDI 2021 · 被引用 24 次
- Synthesizing replacement classesMalavika Samak, Deokhwan Kim, Martin C. RinardPOPL 2020 · 被引用 14 次
- Synthesizing data structure refinements from integrity constraintsShankara Pailoor, Yuepeng Wang, Xinyu Wang, Isil DilligPLDI 2021 · 被引用 10 次
相关 Paper
- BYO: A Unified Framework for Benchmarking Large-Scale Graph ContainersBrian Wheatman, Xiaojun Dong, Zheqi Shen, Laxman Dhulipala 等VLDB 2024 · 被引用 8 次
- Automatic migration from synchronous to asynchronous JavaScript APIsSatyajit Gokhale, Alexi Turcotte, Frank TipOOPSLA 2021 · 被引用 23 次
- Refactorings and Technical Debt in Docker Projects: An Empirical StudyEmna Ksontini, Marouane Kessentini, Thiago do Nascimento Ferreira, Foyzul HassanASE 2021 · 被引用 17 次
- Eliminating abstraction overhead of Java stream pipelines using ahead-of-time program optimizationAnders Møller, Oskar Haarklou VeileborgOOPSLA 2020 · 被引用 9 次
- On the recall of static call graph construction in practiceLi Sui, Jens Dietrich, Amjed Tahir, George FourtounisICSE 2020 · 被引用 34 次
