mirror of
https://github.com/DataDog/go-profiler-notes.git
synced 2026-06-21 00:46:51 +08:00
Less usually
This commit is contained in:
parent
176a6295b8
commit
3ef3ef8f8e
2 changed files with 5 additions and 1 deletions
4
heap.md
4
heap.md
|
|
@ -10,6 +10,10 @@ Look at the go source code to understand how the data is captured, what role run
|
|||
|
||||
Think through sampling rate issues, alloc size classes, etc.
|
||||
|
||||
## Performance Overhead
|
||||
|
||||
Talk about performance overhead ...
|
||||
|
||||
## Data Format
|
||||
|
||||
Figure out how the data ends up in the pprof file.
|
||||
|
|
|
|||
2
pprof.md
2
pprof.md
|
|
@ -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 usually contains a list of **stack traces** called *Samples* that usually 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 **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/).
|
||||
|
||||
The profile also includes the **time** (in UTC) that the profile was recorded, and the **duration** of the recording.
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue