Finding low-utility data structures (2010)
| Venue: | In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI |
| Citations: | 4 - 3 self |
BibTeX
@INPROCEEDINGS{Xu10findinglow-utility,
author = {Guoqing Xu and Nick Mitchell and Matthew Arnold and Atanas Rountev and Edith Schonberg and Gary Sevitsky},
title = {Finding low-utility data structures},
booktitle = {In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI},
year = {2010}
}
OpenURL
Abstract
Many opportunities for easy, big-win, program optimizations are missed by compilers. This is especially true in highly layered Java applications. Often at the heart of these missed optimization opportunities lie computations that, with great expense, produce data values that have little impact on the program’s final output. Constructing a new date formatter to format every date, or populating a large set full of expensively constructed structures only to check its size: these involve costs that are out of line with the benefits gained. This disparity between the formation costs and accrued benefits of data structures is at the heart of much runtime bloat. We introduce a run-time analysis to discover these low-utility data structures. The analysis employs dynamic thin slicing, which naturally associates costs with value flows rather than raw data flows. It constructs a model of the incremental, hop-to-hop, costs







