~/talk

How Fast Can You Parse 1 Billion Rows in Java? – Insane Speed Test

Talkat GOTO Copenhagen 2025 · 2025-09-29..10-03· [java]
slides:none on file

Challenge turns a 4 minute 50 second baseline into about 1.5 seconds to parse 1 billion weather rows using Java, demonstrating concrete techniques: memory-mapped files, Graal native image and Epsilon GC, direct access via sun.misc.Unsafe, SWAR/“SIMD-as-register” bit tricks and branchless parsing, a custom forward‑probing hash table, multi‑slice work stealing and triple scanners per core, plus perf-driven tuning. Resulting tool parses the 16 GB file with ~100 billion instructions (≈100 instructions per record), the micro‑optimizations and kernel unmap workaround all demonstrably improving throughput.

AI-written summary · about

  1. 0:00Intro
  2. 1:00The challenge
  3. 4:07Watch, learn, adopt, experiment
  4. 5:35Which JVM?
  5. 7:03Temperature as integer
  6. 8:01Memory mapped files
  7. 9:35Getting unsafe
  8. 11:04SWAR
  9. 14:08Stringless
  10. 14:55Branchless programming
  11. 16:52Parse the temperature
  12. 24:22Exploit the data
  13. 25:22Mechanical sympathy
  14. 26:32Keeping track
  15. 34:59Remember this?
  16. 36:40Results
  17. 37:05Summary
  18. 38:39Outro
~/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.