Memory models:
- http://nil.csail.mit.edu/6.824/2016/notes/gomem.pdf
- https://research.swtch.com/mm
- https://go.dev/ref/mem
- https://povilasv.me/go-memory-management/
GC:
- https://dave.cheney.net/2014/07/11/visualising-the-go-garbage-collector
- https://go.dev/doc/gc-guide
- https://about.sourcegraph.com/blog/go/gophercon-2018-allocator-wrestling
- https://blog.px.dev/go-garbage-collector/
- https://agrim123.github.io/posts/go-garbage-collector.html
- https://blog.plan99.net/modern-garbage-collection-911ef4f8bd8e#.674yqu7mr
- https://medium.com/a-journey-with-go/go-how-does-the-garbage-collector-mark-the-memory-72cfc12c6976
- https://go.dev/doc/faq#garbage_collection
- Source Code: https://cs.opensource.google/go/go/+/refs/tags/go1.19.1:src/runtime/mgc.go;l=412
- Tricolor GC visualization: https://pusher.github.io/tricolor-gc-visualization/
- ISMM keynote (recommended!): https://go.dev/blog/ismmkeynote
- Tracing GC: https://en.wikipedia.org/wiki/Tracing_garbage_collection
- GC and panics: https://utcc.utoronto.ca/~cks/space/blog/programming/GoGCBadPointerPanics
- Ardan Labs GC series:
- Uber's blog post on optimizing GC: https://www.uber.com/blog/how-we-saved-70k-cores-across-30-mission-critical-services/