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.
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 withUnix_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 usesPath.native_exn dir |> Filename.basename
, which might be better in Eio itself.Part of #450.