Don't forget about memory management
Bryan Boreham (Grafana Labs) and Jordan Lewis (Cockroach Labs) join Mat and Jon to talk about memory management in Go. We learn about the heap, the stack, and the garbage collector. There are also some absolute gems of wisdom scattered throughout this episode, don’t miss it.
Join Changelog++ to support our work, get closer to the metal, and make the ads disappear!
- Sourcegraph – Sourcegraph is universal code search for every developer and team. Easily search across all the code that matters to you and your organization: find example code, explore and read code, debug issues, and more. Head to info.sourcegraph.com/changelog and click the button “Try Sourcegraph now” to get started.
- Equinix Metal – If you want the choice and control of hardware…with low overhead…and the developer experience of the cloud – you need to check out Equinix Metal. Deploy in minutes across 18 global locations, from Silicon Valley to Sydney. Visit metal.equinix.com/justaddmetal and receive $100 credit to play.
- LaunchDarkly – Ship fast. Rest easy. Deploy code at any time, even if a feature isn’t ready to be released to your users. Wrap code in feature flags to get the safety to test new features and infrastructure in prod without impacting the wrong end users.
- Fastly – Our bandwidth partner. Fastly powers fast, secure, and scalable digital experiences. Move beyond your content delivery network to their powerful edge cloud platform. Learn more at fastly.com
- Bryan Boreham – Twitter
- Jordan Lewis – Twitter, GitHub, LinkedIn, Website
- Mat Ryer – Twitter, GitHub, LinkedIn, Website
- Jon Calhoun – Twitter, GitHub, Website
Notes and Links
Local meet-up shout-at
Some things mentioned on the show
- Statsviz gives you an instant live visualization of your Go application runtime statistics (GC, MemStats, etc.) in the browser
sync.Poolhelps you reduce allocations by keeping objects around when they might otherwise be garbage collected
- From the Go blog: The Journey of Go’s Garbage Collector
The viewcore tool is a command-line tool for exploring the state of a Go process that has dumped core.
It’s complicated because it still doesn’t work out of the box, you need my branch which isn’t merged:
- https://github.com/jordanlewis/debug/tree/fix-bugs… (my branch)
- https://github.com/golang/debug/tree/master/cmd/viewcore… (the upstream)
- https://go-review.googlesource.com/c/debug/+/321736… (the CL that isn’t merged yet)