~/talk

1BRC – Nerd Sniping the Java Community

Talkat Devoxx Belgium 2024 · 2024-10-07..10-11· [java]
slides:none on file

A one‑billion‑row CSV (13 GB) is reduced to an aggregated min/max/avg in rules‑bounded runs using parallel chunked reads, memory‑mapped files, integer arithmetic for one‑decimal inputs, and either JVM Vector API/SIMD or SWAR bit‑tricks plus a custom open‑addressing map to avoid rehashing. Native image plus Epsilon GC and 2MB task chunks push throughput: 1.5 seconds on eight cores and ~300 ms on a 32‑core machine; some entries exploit the generator’s ~400 station names for extra speed.

AI-written summary · about

  1. 0:00Introduction to the challenge
  2. 2:29Defining the challenge
  3. 5:17Setting up the environment
  4. 7:40Baseline implementation
  5. 9:34First optimizations
  6. 10:19Parallelization strategies
  7. 11:27Memory mapping and I/O
  8. 12:26Chunking and concurrency
  9. 14:41Addressing community feedback
  10. 16:19Parsing techniques
  11. 19:07SIMD and vectorized logic
  12. 19:56SWAR and bit-level hacks
  13. 22:18Branchless programming
  14. 23:51Advanced optimization risks
  15. 24:07Operational challenges
  16. 27:48Custom hash map structures
  17. 30:33Handling hash collisions
  18. 32:11JIT vs. AOT compilation
  19. 33:01Garbage collection and startup
  20. 35:40Advanced performance tricks
  21. 38:45Analyzing final results
  22. 39:35When to optimize
  23. 43:40Community influence and reach
  24. 46:09Lessons learned 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.