From d0e7b8e375c241eb6e334b4e0e8e7cad1d2caa6c Mon Sep 17 00:00:00 2001 From: Emery Berger Date: Wed, 4 Oct 2023 11:26:49 -0600 Subject: [PATCH] Streamlined. --- README.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c8bdec3..1b5deb1 100644 --- a/README.md +++ b/README.md @@ -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