~/talk

"Redesigning Gopls for 10x Scale"

Talkat GothamGo 2023 · on Friday, 2023-06-09· [go, developer-experience]
slides:none on file

Claim: gopls is rearchitected to avoid one giant pointer graph by using object paths, per-package-level indexes and a persistent content-addressable file cache with GC and atomic-write tricks. Implementation uses export data, method-set fingerprints, and fine-grained invalidation to index references and interfaces. Results: second-open startup drops (kubernetes ~20s), steady memory falls from ~3GB to ~800MB and extreme cases report 17GB → 1.5GB, and gopls v0.12 ships these changes.

AI-written summary · about

  1. 0:00Introduction
  2. 0:39What is Go
  3. 1:41Agenda
  4. 1:57Language Servers
  5. 4:27Performance Improvements
  6. 6:02Scaling
  7. 6:23Startup Latency
  8. 6:55Steady State Memory
  9. 7:10Post keystroke latency
  10. 7:53Autocompletion latency
  11. 8:27Large repositories
  12. 9:54Why Gopl
  13. 11:14Working Backward
  14. 12:23References Algorithm
  15. 13:14transitive importers
  16. 13:33symbolic programming
  17. 13:54Improving Gopls
  18. 15:20Export Data
  19. 16:20Object Paths
  20. 16:52Success
  21. 17:40Type Check
  22. 19:14completeness
  23. 19:47references index
  24. 20:04reference index
  25. 21:36method set index
  26. 25:29implementation
  27. 27:00rename
  28. 27:30filelocking
  29. 29:46why didnt we reuse an existing database
  30. 30:40incremental build systems
  31. 34:14Finegrained invalidation
  32. 36:20Results
  33. 37:10Key Metrics
  34. 39:06Sublinear Scaling
  35. 40:04Conclusion
~/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.