paperbot · PL 论文追踪

RSS

Complexity-guided container replacement synthesis

OOPSLA 6(OOPSLA1)2022
Chengpeng Wang, Peisen Yao, Wensheng Tang, Qingkai Shi, Charles Zhang

尚未生成 AI 速览(可能缺少 API key 或等待下次运行补跑)。

原文摘要(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%.

链接与引用

DOI 原文 ·

BibTeX
@article{paperbot1521,
  title = {Complexity-guided container replacement synthesis},
  author = {Chengpeng Wang and Peisen Yao and Wensheng Tang and Qingkai Shi and Charles Zhang},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {OOPSLA1},
  year = {2022},
  doi = {10.1145/3527312}
}