Algorithmic Profiling for Real-World Complexity Problems

Boqin Qin, Tengfei Tu, Ziheng Liu, Tingting Yu, Linhai Song

Research output: Contribution to journalArticlepeer-review

Abstract

Complexity problems are a common type of performance issues, caused by algorithmic inefficiency. Algorithmic profiling aims to automatically attribute execution complexity to an executed code construct. It can identify code constructs in superlinear complexity to facilitate performance optimizations and debugging. However, existing algorithmic profiling techniques suffer from several severe limitations, missing the opportunity to be deployed in production environment and failing to effectively pinpoint root causes for performance failures caused by complexity problems. In this paper, we design a tool, ComAir, which can effectively conduct algorithmic profiling in production environment. We propose several novel instrumentation methods to significantly lower runtime overhead and enable the production-run usage. We also design an effective ranking mechanism to help developers identify root causes of performance failures due to complexity problems. Our experimental results show that ComAir can effectively identify root causes and generate accurate profiling results in production environment, while incurring a negligible runtime overhead

Original languageEnglish (US)
JournalIEEE Transactions on Software Engineering
DOIs
StateAccepted/In press - 2021

All Science Journal Classification (ASJC) codes

  • Software

Cite this