brk_bencher 0.1.0-alpha.3

A simple benchmarker for testing other crates.
Documentation

brk_bencher

Resource monitoring for long-running Bitcoin indexing operations.

What It Enables

Track disk usage, memory consumption (current + peak), and I/O throughput during indexing runs. Progress tracking hooks into brk_logger to record processing milestones automatically.

Key Features

  • Multi-metric monitoring: Disk, memory (RSS + peak), I/O read/write
  • Progress tracking: Integrates with logging to capture block heights as they're processed
  • Run comparison: Outputs timestamped CSVs for comparing multiple runs
  • macOS optimized: Uses libproc for accurate process metrics on macOS
  • Non-blocking: Monitors in background thread with 5-second sample interval

Core API

let mut bencher = Bencher::from_cargo_env("brk_indexer", &data_path)?;
bencher.start()?;

// ... run indexing ...

bencher.stop()?;

Output Structure

benches/
└── brk_indexer/
    └── 1703001234/
        ├── disk.csv      # timestamp_ms, bytes
        ├── memory.csv    # timestamp_ms, current, peak
        ├── io.csv        # timestamp_ms, read, written
        └── progress.csv  # timestamp_ms, height

Built On

  • brk_error for error handling
  • brk_logger for progress hook integration