diff --git a/block.md b/block.md index 28bf8d7..c69a485 100644 --- a/block.md +++ b/block.md @@ -2,6 +2,30 @@ This document was last updated for `go1.15.7` but probably still applies to olde # Block Profiling in Go + + +- [Block Profiling in Go](#block-profiling-in-go) + * [Description](#description) + * [Usage](#usage) + * [Overhead](#overhead) + + [Implementation Details](#implementation-details) + + [Benchmarks](#benchmarks) + + [Memory Usage](#memory-usage) + + [Initialization Time](#initialization-time) + * [Accuracy](#accuracy) + + [Sampling Bias](#sampling-bias) + - [Simple Example](#simple-example) + - [Simulation & Proposal for Improvement](#simulation---proposal-for-improvement) + + [Time Stamp Counter](#time-stamp-counter) + + [Stack Depth](#stack-depth) + + [Spin Locks](#spin-locks) + * [Relationship with Wall Clock Time](#relationship-with-wall-clock-time) + * [Relationship with Mutex Profiling](#relationship-with-mutex-profiling) + * [Profiler Labels](#profiler-labels) + * [pprof Output](#pprof-output) + * [History](#history) + * [Disclaimers](#disclaimers) + ## Description The block profile in Go lets you analyze how much time your program spends waiting on the blocking operations listed below: