Affiliation:
1. Grinnell College
2. University of Massachusetts Amherst
Abstract
Improving performance is a central concern for software developers. To locate optimization opportunities, developers rely on software profilers. However, these profilers only report where programs spend their time: optimizing that code may have no impact on performance. Past profilers thus both waste developer time and make it difficult for them to uncover significant optimization opportunities.
This paper introduces
causal profiling.
Unlike past profiling approaches, causal profiling indicates exactly where programmers should focus their optimization efforts, and quantifies their potential impact. Causal profiling works by running
performance experiments
during program execution. Each experiment calculates the impact of any potential optimization by
virtually speeding
up code: inserting pauses that slow down all other code running concurrently. The key insight is that this slowdown has the same
relative
effect as running that line faster, thus "virtually" speeding it up.
We present Coz, a causal profiler, which we evaluate on a range of highly-tuned applications such as Memcached, SQLite, and the PARSEC benchmark suite. Coz identifies previously unknown optimization opportunities that are both significant and targeted. Guided by Coz, we improve the performance of Memcached by 9%, SQLite by 25%, and accelerate six PARSEC applications by as much as 68%; in most cases, these optimizations involve modifying under 10 lines of code.
Funder
Google
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Perun: Performance Version System;2022 IEEE International Conference on Software Maintenance and Evolution (ICSME);2022-10
2. Automated Cause Analysis of Latency Outliers Using System-Level Dependency Graphs;2021 IEEE 21st International Conference on Software Quality, Reliability and Security (QRS);2021-12
3. Safer at any speed: automatic context-aware safety enhancement for Rust;Proceedings of the ACM on Programming Languages;2021-10-20
4. WebOpt Profiler;Proceedings of the Student Workshop;2020-12