Profiling improvements in Go 1.18 | Datadog
Feb 28, 2022Felix Geisendörfer

Summary
This post details contributions to Go 1.18's CPU profiler, specifically addressing issues with setitimer(2) and timer_create(2) on Linux to improve CPU burst accuracy on multi-core systems. It also covers bug fixes for profiler labels in Go 1.18, enhancing the ability to associate arbitrary key/value pairs with goroutines for better profiling analysis.
More from the Java CPU Profiling trail
- How we built an async-aware Python profiler | Datadog
- Unbiased Java CPU profiling with JFR in JDK 25 | Datadog
- From hand-tuned Go to self-optimizing code: Building BitsEvolve | Datadog
- How we tracked down a Go 1.24 memory regression across hundreds of pods | Datadog
- .NET Continuous Profiler: Exception and lock contention | Datadog