mgree/ffs

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 k randomly (predetermined) files out of N >> 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