--- name: performance description: Performance optimization guidelines for Splitrail. Use when optimizing parsing, reducing memory usage, or improving throughput. --- # Performance Considerations ## Techniques Used - **Parallel analyzer loading** - `futures::join_all()` for concurrent stats loading - **Parallel file parsing** - `rayon` for parallel iteration over files - **Fast JSON parsing** - `simd_json` exclusively for all JSON operations (note: `rmcp` crate re-exports `serde_json` for MCP server types) - **Fast directory walking** - `jwalk` for parallel directory traversal - **Lazy message loading** - TUI loads messages on-demand for session view See existing analyzers in `src/analyzers/` for usage patterns. ## Guidelines 1. Prefer parallel processing for I/O-bound operations 2. Use `parking_lot` locks over `std::sync` for better performance 3. Avoid loading all messages into memory when not needed 4. Use `BTreeMap` for date-ordered data (sorted iteration)