Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/02-networking/bench-and-load.md
Original file line number Diff line number Diff line change
Expand Up @@ -362,14 +362,14 @@ For example, if profiling shows excessive time spent in TLS handshake routines,

**Why it matters:** CPU bottlenecks cap your ability to scale. Fixing them is often the difference between a system that handles 5K clients and one that handles 50K.

### Practicle example of Profiling Networked Go Applications with `pprof`
### Practical example of Profiling Networked Go Applications with `pprof`

To illustrate these concepts practically, our demo application integrates profiling and benchmarking tools and provides comprehensive profiling and load testing scenarios. The demo covers identifying performance bottlenecks, analyzing flame graphs, and benchmarking under various simulated network conditions.

Due to its significant size, [Practicle example of Profiling Networked Go Applications with `prof`](gc-endpoint-profiling.md) is a separate article.
Due to its significant size, [Practical example of Profiling Networked Go Applications with `prof`](gc-endpoint-profiling.md) is a separate article.

## Benchmarking as a Feedback Loop

A single load test run means little in isolation. But if you treat benchmarking as part of your development cycle—before and after changes—you start building a performance narrative. You can see exactly how a change impacted throughput or whether it traded latency for memory overhead.

The Go standard library gives you `testing.B` for microbenchmarks. Combine profiling with robust integration testing as part of your CI/CD pipeline using tools like `Vegeta` and `k6`. This practice ensures early detection of regressions, continuous validation of performance enhancements, and reliable application performance maintenance under realistic production conditions.
The Go standard library gives you `testing.B` for microbenchmarks. Combine profiling with robust integration testing as part of your CI/CD pipeline using tools like `Vegeta` and `k6`. This practice ensures early detection of regressions, continuous validation of performance enhancements, and reliable application performance maintenance under realistic production conditions.
2 changes: 1 addition & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ nav:
- 02-networking/index.md
- Benchmarking First:
- Benchmarking and Load Testing for Networked Go Apps: 02-networking/bench-and-load.md
- Practicle example of Profiling Networked Go Applications with pprof: 02-networking/gc-endpoint-profiling.md
- Practical example of Profiling Networked Go Applications with pprof: 02-networking/gc-endpoint-profiling.md
- Foundations and Core Concepts:
- How Go Handles Networking: 02-networking/networking-internals.md
- Efficient Use of net/http, net.Conn, and UDP: 02-networking/efficient-net-use.md
Expand Down