~/talk

Misnomers About Microbenchmarks

Talkat GopherCon Europe - Iceland 2018 · 2018-06-01..06-02· [web-performance]
slides:none on file

Argues that zero allocations often has negligible user impact and gives concrete measurements: Go's testing/bench with -benchmem and benchstat, wrk for loaded tests, and debug GC stats. Shows AES-GCM runs ~7× faster on x86 with CPU crypto but in real services AES vs secretbox changes tail latency by only ~0.1–0.2 ms at the 99th percentile; router microbenchmarks with millions of requests show no meaningful user-visible difference. Recommends profile first, benchmark on production hardware, run long and randomize order.

AI-written summary · about

  1. 0:00Intro
  2. 1:19First: what is a "micro" benchmark?
  3. 12:25The order in which you run your benchmarks can impact your results
  4. 15:40Utter Garbage
  5. 17:51GC behaviour is your algorithms' impact a meaningful fraction of the larger program?
  6. 19:33Quantifying the Impact
  7. 23:09The Great Go Router Wars
  8. 27:57What's the relationship between these microbenchmarks & application performance?
  9. 33:10What about GC pause times?
  10. 33:273.7ms request latency (99th)
  11. 34:36Another Look
  12. 39:45Microbenchmarking Best Practices
  13. 40:16Profile first
  14. 40:55Mitigate CPU impact by running your benchmarks longer.
  15. 43:27Does adopting the algorithm that allocates less, or is faster, help you meet your Service Level Objectives? (SLO)
  16. 44:17What Should We Care About?
  17. 44:34Use of composable interfaces.
~/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.