Streamlined.

This commit is contained in:
Emery Berger 2023-10-04 11:26:49 -06:00
parent ba97ed5e30
commit d0e7b8e375

View File

@ -4,16 +4,22 @@ by [Charlie Curtsinger](https://curtsinger.cs.grinnell.edu/) and [Emery Berger](
[![Rust Crate downloads](https://img.shields.io/crates/d/coz?logo=rust&link=https%3A%2F%2Fcrates.io%2Fcrates%2Fcoz)](https://crates.io/crates/coz)
Coz is a new kind of profiler that unlocks optimization opportunities missed by traditional profilers. Coz employs a novel technique we call *causal profiling* that measures optimization potential. This measurement matches developers' assumptions about profilers: that optimizing highly-ranked code will have the greatest impact on performance. Causal profiling measures optimization potential for serial, parallel, and asynchronous programs without instrumentation of special handling for library calls and concurrency primitives. Instead, a causal profiler uses performance experiments to predict the effect of optimizations. This allows the profiler to establish causality: "optimizing function X will have effect Y," exactly the measurement developers had assumed they were getting all along.
Coz is a profiler for native code (C/C++/Rust) that unlocks
optimization opportunities missed by traditional profilers. Coz
employs a novel technique called *causal profiling* that measures
optimization potential. It predicts what the impact of optimizing code
will have on overall throughput or latency.
![Example Coz profile](https://github.com/plasma-umass/coz/blob/master/example-coz-output.png)
The above profile generated by Coz shows the "bang for buck" of
optimizing a line of code in the Ferret application. Almost every
Profiles generated by Coz show the "bang for buck" of optimizing a
line of code in an application. In the below profile, almost every
effort to optimize the performance of this line of code directly leads
to an increase in overall performance, making it an excellent
candidate for optimization efforts.
![Example Coz profile](https://github.com/plasma-umass/coz/blob/master/example-coz-output.png)
Coz's measurement matches developers' assumptions about profilers: that optimizing highly-ranked code will have the greatest impact on performance. Causal profiling measures optimization potential for serial, parallel, and asynchronous programs without instrumentation of special handling for library calls and concurrency primitives. Instead, a causal profiler uses performance experiments to predict the effect of optimizations. This allows the profiler to establish causality: "optimizing function X will have effect Y," exactly the measurement developers had assumed they were getting all along.
Full details of Coz are available in our paper, [Coz: Finding Code
that Counts with Causal Profiling
(pdf)](http://arxiv.org/pdf/1608.03676v1.pdf), SOSP 2015, October 2015