Abstract
Developing concurrent software that is both correct and efficient is challenging. Past research has proposed various techniques that support developers in finding, understanding, and repairing concurrency-related correctness problems, such as missing or incorrect synchronization. In contrast, existing work provides little support for dealing with concurrency-related performance problems, such as unnecessary or inefficient synchronization. This paper presents SyncProf, a profiling approach that helps in identifying, localizing, and repairing performance bottlenecks in concurrent programs. The approach consists of a sequence of dynamic analyses that reason about relevant code locations with increasing precision while narrowing down performance problems and gathering data for avoiding them. A key novelty is a graph-based representation of relations between critical sections, which is the basis for computing the performance impact of a critical section and for identifying the root cause of a bottleneck. Once a bottleneck is identified, SyncProf searches for a suitable optimization strategy to avoid the problem, increasing the level of automation when repairing performance bottlenecks over a traditional, manual approach. We evaluate SyncProf on 25 versions of eleven C/C++ projects with both known and previously unknown synchronization bottlenecks. The results show that SyncProf effectively localizes the root causes of these bottlenecks with higher precision than a state of the art lock contention profiler, and that it suggests valuable strategies to repair the bottlenecks.
Original language | English |
---|---|
Pages (from-to) | 3034-3071 |
Number of pages | 38 |
Journal | Empirical Software Engineering |
Volume | 23 |
Issue number | 5 |
DOIs | |
State | Published - Oct 1 2018 |
Bibliographical note
Publisher Copyright:© 2017, Springer Science+Business Media, LLC, part of Springer Nature.
Funding
This research is supported in part by the NSF grants CCF-1464032 and CCF-1652149, by the German Research Foundation within the Emmy Noether project “ConcSys” and by the German Federal Ministry of Education and Research and the Hessian Ministry of Science and the Arts within “CRISP”.
Funders | Funder number |
---|---|
Hessian Ministry of Science and the Arts | |
National Science Foundation (NSF) | CCF-1652149, CCF-1464032 |
Deutsche Forschungsgemeinschaft | |
Bundesministerium für Bildung und Forschung |
Keywords
- Concurrency
- Performance bottlenecks
- Testing
ASJC Scopus subject areas
- Software