Pinpointing and repairing performance bottlenecks in concurrent programs

Tingting Yu, Michael Pradel

Research output: Contribution to journalArticlepeer-review

9 Scopus citations

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 languageEnglish
Pages (from-to)3034-3071
Number of pages38
JournalEmpirical Software Engineering
Volume23
Issue number5
DOIs
StatePublished - Oct 1 2018

Bibliographical note

Funding Information:
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”.

Publisher Copyright:
© 2017, Springer Science+Business Media, LLC, part of Springer Nature.

Keywords

  • Concurrency
  • Performance bottlenecks
  • Testing

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Pinpointing and repairing performance bottlenecks in concurrent programs'. Together they form a unique fingerprint.

Cite this