Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Async, parallel directory I/O #101

Closed
21 of 24 tasks
tavianator opened this issue Jun 12, 2023 · 1 comment
Closed
21 of 24 tasks

Async, parallel directory I/O #101

tavianator opened this issue Jun 12, 2023 · 1 comment
Assignees
Milestone

Comments

@tavianator
Copy link
Owner

tavianator commented Jun 12, 2023

bfs 3.0 will do opendir() + readdir() asynchronously and in parallel.

Preparation

Implementaton

Optimization

Benchmarking

Try to quantify improvement and avoid regressions in these scenarios:

  • Complete traversal of

    • Small trees (e.g. bfs itself)
    • Medium trees (e.g. Linux)
    • Large trees (e.g. Android)
  • Early termination, as a proxy for interactive use (bfs -name <something unique> -quit)

    • Shallow file
    • Medium file
    • Deep file
  • Search strategies

    • bfs
    • dfs
    • ids
    • eds
  • Cold page/buffer cache

@tavianator tavianator added this to the 3.0 milestone Jun 12, 2023
@tavianator tavianator self-assigned this Jun 12, 2023
@tavianator
Copy link
Owner Author

This is now done! All that's left is #65.

Command Mean [s] Min [s] Max [s] Relative
./bfs-2.6.3 ~ -false 4.835 ± 0.021 4.816 4.891 1.82 ± 0.04
./bfs-a1490d9 ~ -false 2.661 ± 0.063 2.582 2.768 1.00
fd -u '^$' ~ 7.085 ± 0.022 7.059 7.128 2.66 ± 0.06

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant