# Performance

> Performance optimization guidelines for Splitrail. Use when optimizing parsing, reducing memory usage, or improving throughput.

- Skill: `majiayu000/performance-9` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/performance-9`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/performance-9/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/performance-9

---


# 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)
