diff --git a/pprof.md b/pprof.md index bb61cfe..c531c58 100644 --- a/pprof.md +++ b/pprof.md @@ -10,7 +10,11 @@ The pprof tool features an interactive command line interface, but also a Web UI ### Description -The pprof tool defines a [protocol buffer](https://developers.google.com/protocol-buffers) output format, which is always stored with gzip compression and described in great detail this [README](https://github.com/google/pprof/blob/master/proto/README.md) as well as the [profile.proto](https://github.com/google/pprof/blob/master/proto/profile.proto) definition file itself. +The pprof tool defines a [protocol buffer](https://developers.google.com/protocol-buffers) output format, which is always stored with gzip compression and described in great detail this [README](https://github.com/google/pprof/blob/master/proto/README.md). + +A picture is worth a thousand words, so here is a visualization of [profile.proto](https://github.com/google/pprof/blob/master/proto/profile.proto) generated by [protodot](https://github.com/seamia/protodot): + +profile.proto visualized pprof's data format appears to be designed to for efficency, multiple languages and different profile types (CPU, Heap, etc.), but because of this it's very abstract and full of indirection. If you want all the details, follow the links above. If you want the **tl;dr**, keep reading: diff --git a/profile.png b/profile.png new file mode 100755 index 0000000..4bf731c Binary files /dev/null and b/profile.png differ