Profiling Go programs with pprof
jvns.ca · 2,074 words · saved by 1 readers
Profiling Go programs with pprof
Last week me and my cool coworker Josh were debugging some memory problems in a Go program using pprof . There's a bunch of pprof documentation on the internet but I found a few things confusing so here are some notes so I can find them easily. First - when working with pprof it's good to be running a recent version of Go! For example Go 1.8 adds mutex profiles so you can see mutex contention. in this post I'll link to the useful pprof resource I found explain what a pprof profile is give an example of how to look at a heap profile of a Go program explain a few things about the heap profiler w
saved by
related reading
- What is continuous profiling? | CNCFcncf.io
- Golang landminesgist.github.com
- Frequently Asked Questions (FAQ) - The Go Programming Languagego.dev
- Diagnostics - The Go Programming Languagego.dev
- Go execution tracer | Gopher Academy Blogblog.gopheracademy.com
- [Java][Profiling] Async-profiler - manual by use cases | JVM/Java profiling and tuningkrzysztofslusarski.github.io
- Notes on structured concurrency, or: Go statement considered harmful - njs blogvorpus.org
- Memory Allocation in Go | Melatoninghiant3223.github.io
- All my favorite tracing tools: eBPF, QEMU, Perfetto, new ones I built and more - Tristan Humethume.ca
- Profile-guided optimization - The Go Programming Languagego.dev
- Data Race Detector - The Go Programming Languagego.dev
- PyTorch Profiling 101 with Modded-NanoGPTblog.underfit.ai