This commit is contained in:
Felix Geisendörfer 2021-01-10 11:31:00 +01:00
parent 928b0be51a
commit 90eb9b4475

View file

@ -14,7 +14,7 @@ The pprof tool defines a [protocol buffer](https://developers.google.com/protoco
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:
A pprof file contains a list of **stack traces** called *Samples* that have one or more numeric **values** associated with them. For a CPU profile the value might be the CPU time duration in nanoseonds that the stack trace was observed for during profiling. For a heap profile it might be the number of bytes allocated. In addition to the values, each stack trace can also include a set of **labels**. The labels are key-value pairs and can even include a unit. In Go those labels are used for [profiler labels](https://rakyll.org/profiler-labels/).
A pprof file contains a list of **stack traces** called *samples* that have one or more numeric **value** associated with them. For a CPU profile the value might be the CPU time duration in nanoseonds that the stack trace was observed for during profiling. For a heap profile it might be the number of bytes allocated. In addition to the values, each stack trace can also include a set of **labels**. The labels are key-value pairs and can even include a unit. In Go those labels are used for [profiler labels](https://rakyll.org/profiler-labels/).
The profile also includes the **time** (in UTC) that the profile was recorded, and the **duration** of the recording.