Performance benchmarking
mgree opened this issue · 2 comments
mgree commented
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
mgree commented
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)
mgree commented
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
krandomly (predetermined) files out ofN >> kfiles
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