ffs
ffs copied to clipboard
Performance benchmarking
Timing: use https://crates.io/crates/tracing-timing?
Microbenchmarks
- read
- write
Macrobenchmarks
- tasks?
Compare against
- FS (various hdd configs) as baseline
- ramdisk as memory FS baseline
- jq
- js
- python
- native rust
To FUSE or Not to FUSE: Performance of User-Space File Systems for background data on FUSE performance.
High Velocity Kernel File Systems with Bento for a Rust-y take on FUSE (direct VFS bindings in C call a safe FS API in Rust)
I can imagine several abstract benchmarks:
- [ ] Time to read a single file in the root
- [ ] Time to read a single file nested (deeply/widely)
- [ ] Time to read
k
randomly (predetermined) files out ofN >> k
files
Each of the above should also have writing/creation tests.
- [ ] Time to sum every numeric entry in a large file (deep or wide)
And several benchmarks that could run on real data:
- [ ] Time to sum every, e.g. cost entry in a long list of records
- [ ] Time to find commits matching a given pattern from a GH dump
- [ ] Time to generate, e.g., a GraphQL call or a build/CI script
- [ ] Time to modify, e.g., a GraphQL call