~/talk

Whodunit? A performance murder mystery

Talkat NDC Oslo 2021 · 2021-11-29..12-03· [web-performance]
links:none on file
slides:none on file

A Rust JSON transformer becomes up to 45 times slower after added dedup, split and sort. Benchmarks with Criterion and comparisons expose quadratic dedup as the culprit; git bisect finds the commit; flame graphs show dedup dominated CPU time and deserialization later accounts for ~50% of CPU. Fixes: replace O(n^2) contains-on-vector with a hashmap inserted from the back, use &str slices to avoid heavy String allocations, and micro-optimize splitting; the hashmap-from-back version wins on large-duplicate workloads while the no-dedup baseline still wins for all-unique inputs.

AI-written summary · about

  1. 0:00Start
  2. 3:54It was a dark and stormy night...
  3. 5:36The data!
  4. 9:38benchmark (n.)
  5. 13:16Git bisect
  6. 13:37Binary search
  7. 20:36Flame graphs
  8. 20:46Let's talk about ... this guy
  9. 21:58Mommy, what's a Elame graph?
  10. 24:06Other options
  11. 28:38Deduplication
  12. 33:54Creating windows
  13. 35:03How long is a piece of string?
  14. 36:41Back to the flame graph
  15. 38:30Final results
~/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.