Title
Complexity-guided container replacement synthesis
Abstract
AbstractContainers, 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%.
Year
DOI
Venue
2022
10.1145/3527312
Proceedings of the ACM on Programming Languages
Keywords
DocType
Volume
program synthesis, program optimization, data structure specification
Journal
6
Issue
Citations 
PageRank 
OOPSLA1
0
0.34
References 
Authors
0
5
Name
Order
Citations
PageRank
Chengpeng Wang100.68
Peisen Yao232.40
Wensheng Tang301.69
Qingkai Shi4447.50
Charles Zhang551228.97