~/talk

Blazing-Fast Directory Tree Traversal: Haskell Streamly Beats Rust

Talkat Functional Conf 2025 · 2025-01-24..01-25· [haskell]
links:none on file
slides:none on file

Claims a Haskell program using Streamly and low‑level readdir(3) I/O outperforms Rust fd and matches or beats GNU find on a 60,000‑node Linux tree. Implementation removes extra stat calls, batches output into a 32k buffer, uses concatIterate and parConcatIterate for DFS/BFS and parallelism, and drops allocations from ~450 MB to ~20 MB. Serial optimized Haskell hits ~134 ms, chunked version ~144 ms, concurrent version falls to ~85 ms and is reported ~1.5× faster than concurrent fd while producing identical output.

AI-written summary · about

  1. 0:00Talk overview and motivation
  2. 2:24Naive implementation analysis
  3. 6:46Incremental performance tuning
  4. 10:40Streaming and combinators
  5. 16:33Optimizing with batching
  6. 21:12Refining for maximum speed
  7. 23:37Concurrent traversal and benchmarks
  8. 25:51Comparative performance analysis
  9. 29:25Lessons and systems programming
  10. 33:53Q&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.