~/talk

Evolving the Go Memory Manager's RAM and CPU Efficiency

Talkat GopherCon 2020 · 2020-11-09..11-13· [go]
slides:none on file

Recent runtime work (Go 1.12–1.14) fixes a broken best-fit tree via unit tests, adds a background highest-address-first scavenger that returns memory gradually with ~10% headroom, and replaces the global free-tree with a summarized bitmap with processor-local caches. Result: fragmentation and OOMs drop, Kubernetes/internal services show ~10–20% lower average memory, allocation-heavy benchmarks see up to ~30% throughput and ~20% tail-latency improvements, and locking collapse on many cores is eliminated.

AI-written summary · about

  1. 0:00Intro
  2. 0:20Overview
  3. 4:43Orientation
  4. 5:39Dynamic Memory Allocation
  5. 7:25The Heap Memory "Lifecycle"
  6. 10:37Talking policy
  7. 12:22Scenario: Large allocation to fragmented heap
  8. 23:41Picking a policy
  9. 30:43Scenario: Heap Spikes
  10. 33:56Lock collapse
  11. 40:25Bitmaps!
  12. 41:33Caching pages
  13. 42:53Summarizing the bitmap
  14. 48:59Takeaways
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.