~/talk

Golang's Garbage

Talkat SREcon17 Asia/Australia · 2017-05-22..05-24· [go]
slides:none on file

Uber measures Go nodes spending ~75% of runtime in background GC on a ~96GB heap; perf top and flamegraphs plus go debug gctrace reveal long background mark/sweep and assist CPU (minutes across cores) while stop-the-world pauses stay small. Remedies: reduce pointers with pointerless maps/channels and uintptr indirection, prefer sync.Pool quirks, or bypass the GC with a native heap via mmap and ninja slices (reflect+unsafe). Implementing that native heap drops P99 latency ~4x (≈2s to ≈0.5s) but requires manual memory management.

AI-written summary · about

  1. 0:00Intro
  2. 0:43Claim of Credibility
  3. 5:40Modern GC
  4. 9:03Golang GC
  5. 14:15GODEBUG=gctrace=1
  6. 20:17Heap Bitmap
  7. 24:26Easy Tricks
  8. 28:05Pooling
  9. 34:01Native Heap
  10. 39:06Native Slices
  11. 44:38What's Next?
~/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.