~/talk

Faster Go Maps With Swiss Tables

Talkat GopherCon Europe 2025 · 2025-06-16..06-19· [go, compilers-and-language-design]
slides:none on file

Go 1.24 replaces the old map runtime with a Swiss Table design that stores 8-slot groups plus a 64-bit control word, uses bytewise parallel probes, and raises the grow threshold from 81% to 87% max load factor. Maps account for roughly 10–15% of app CPU and the new implementation reports about 30% faster inserts and lookups on large maps. Iteration preserves Go’s semantics by keeping old tables for visit order while rechecking keys in the live tables, and growth is bounded by splitting work across independent subtables so no single insert does an unbounded full-table copy.

AI-written summary · about

  1. 0:00Introduction to Go maps
  2. 12:26The Swiss table design
  3. 18:57Implementing maps in Go
  4. 22:22Map iteration semantics
  5. 24:03Performance and conclusion
~/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.