Files
poimen-memory/tasks/M3.8.3-compression-benchmarks.md
T
Story Crater Bot 3c2ad6ebe9
Build and Push / Test (push) Failing after 1m56s
Build and Push / Build and push image (push) Skipped
plan: M3.8.3 benchmarks + M3.8.4 gate
2026-08-28 10:06:14 -07:00

1.8 KiB

M3.8.3 — Compression Benchmarks & Tuning

Field Value
Phase M3.8 — Context optimization
Size M — 1 day
Status Not started
Depends M3.8.1, M3.8.2
Blocks M3.8.4

Goal

Measure compression performance across content types and validate that ratios meet targets without sacrificing quality.

Deliverables

1. Benchmark Suite

New module: crates/mem-core/src/optimizer/bench.rs (100 LOC)

pub fn benchmark_all_compressors() -> BenchmarkReport {
    // Real-world test fixtures:
    // - logs/npm-error.txt (5KB)
    // - logs/cargo-fail.txt (8KB)
    // - json/array-100.json (15KB)
    // - diff/patch-large.diff (10KB)
    // - text/prose-1000words.txt (6KB)
    
    // Measure per-compressor:
    // - compression ratio (%)
    // - time taken (µs)
    // - tokens before/after
}

Tests (4):

  • test_log_compression_meets_target (85-95%)
  • test_json_compression_meets_target (70-90%)
  • test_diff_compression_meets_target (60-80%)
  • test_text_compression_meets_target (30-50%)

2. Performance Profile

Command:

cargo test --release --lib optimizer::bench 2>&1 | grep "time:"

Expected output:

log compression: 89% ratio, 1.2ms
json compression: 78% ratio, 2.1ms
diff compression: 64% ratio, 1.5ms
text compression: 38% ratio, 1.8ms

3. Tuning Knobs

Document per-compressor parameters:

  • LogCompressor: error line threshold (currently: any line with "error", "failed", etc.)
  • JsonCrusher: importance budget (currently: 55%)
  • DiffCompressor: context lines kept (currently: 0)
  • TextCompressor: token retention ratio (currently: 40%)

Acceptance

  • All 4 compression targets met (measured >= target)
  • All benchmark tests passing
  • Performance < 3ms per chunk
  • Documentation of tuning parameters