ocaml-multicore / eio

Effects-based direct-style IO for multicore OCaml
Other
540 stars 66 forks source link

Add Path.stat benchmark #630

Closed talex5 closed 11 months ago

talex5 commented 11 months ago

This is @patricoferris's benchmark from #599, updated to use the new rmtree. I also added a semaphore to limit the number of concurrent operations, since it was otherwise failing with Unix_error (Too many open files, "openat2", "").

This is currently much faster with eio_linux than with eio_posix, probably due to the inefficient way we handle sandboxing there, so this will be a useful benchmark for fixing that.

For me, creation takes 2.1s with uring and 18.8s with posix; stat takes 1.3s with uring and 9.2s with posix. Using with_open_dir might further speed up the uring version.

Note: this currently defines with_tmp_dir and uses Path.native_exn dir |> Filename.basename, which might be better in Eio itself.

Part of #450.