~/talk

Pushing Java to the Limits: Processing a Billion Rows in under 2 Seconds

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

Claim: Java parses a billion weather rows in under two seconds (reference >4 minutes → under 2s). Uses Graal native image, sun.misc.Unsafe, memory-mapped files plus SWAR/branchless parsing, perf/hyperfine benchmarking and machine-level tuning. Builds a forward‑probing hashmap, an unsafe scanner, chunked worker segments and a subprocess trick to hide kernel unmap; result runs ~1.3s on 8 cores (~50 cycles/row, ~100 machine instructions → 117 later, branch misses dramatically reduced) and proves the approach works.

AI-written summary · about

  1. 0:00Introduction to challenge
  2. 2:55Contest rules and setup
  3. 7:38Reference implementation analysis
  4. 10:10Optimization progress overview
  5. 16:23Native image compilation benefits
  6. 22:30Parallel processing and data structures
  7. 28:52Memory mapping files
  8. 32:23Unsafe memory access
  9. 40:24Long-based string comparisons
  10. 43:34SWAR scanning and bit manipulation
  11. 51:04Branchless temperature parsing
  12. 1:02:30Data distribution specialization
  13. 1:13:42Custom hash map implementation
  14. 1:21:33Linux kernel profiling
  15. 1:31:12Subprocess trick for unmapping
  16. 1:38:16Fine-grained parallel processing
  17. 1:49:07Perf profiling and machine code
  18. 2:01:40Compiler graph visualization
  19. 2:10:58Branch prediction and misses
  20. 2:25:55Vector API and future optimizations
  21. 2:36:11Q&A session
~/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.