Performance
Performance
Section titled “Performance”Performance characteristics and comparison with madge and dependency-cruiser. For an overview, see Circular Dependencies.
Benchmark Results
Section titled “Benchmark Results”Arxo’s SCC detection is 3-5× faster than alternatives across multiple languages:
JavaScript/TypeScript: Prettier (4,883 files)
Section titled “JavaScript/TypeScript: Prettier (4,883 files)”| Tool | Time | vs arxo |
|---|---|---|
| arxo | 623 ms | 1.0× |
| madge | 2,310 ms | 3.7× slower |
| dependency-cruiser | 3,226 ms | 5.2× slower |
Python: Requests Library
Section titled “Python: Requests Library”| Tool | Time | vs arxo |
|---|---|---|
| arxo | ~350 ms | 1.0× |
| Other Python tools | Not benchmarked | N/A |
Java: GSON (2,000+ files)
Section titled “Java: GSON (2,000+ files)”| Tool | Time | vs arxo |
|---|---|---|
| arxo | ~1,200 ms | 1.0× |
| Java-specific tools | Not benchmarked | N/A |
Go: Gin Framework
Section titled “Go: Gin Framework”| Tool | Time | vs arxo |
|---|---|---|
| arxo | ~800 ms | 1.0× |
| Go-specific tools | Not benchmarked | N/A |
Why it matters:
- Fast enough for pre-commit hooks (under 1 second for most projects)
- Doesn’t slow down CI/CD pipelines
- Enables watch mode for local development
- Scales to projects with 10,000+ files
Caching
Section titled “Caching”Results are cached for even better performance:
cache: enabled: true directory: .arxo-cachePerformance with cache (Prettier, with git history enabled):
- Cold run: 209s (full analysis with git history)
- Warm run: 54s (3.9× faster)
- SCC deps phase: 14.5s → 3.2s (4.6× faster)
The cache stores the import graph, git history, and intermediate computations. Subsequent runs load from cache instead of rebuilding from scratch.
Comparison with Other Tools
Section titled “Comparison with Other Tools”What Arxo Finds That Others Miss
Section titled “What Arxo Finds That Others Miss”In the Prettier benchmark, arxo was the only tool to detect a critical 56-node cycle:
standalone.js → cli → plugins → index.js → standalone.js(56 modules in total)madge: Reported 8 circular paths (missed the large cycle)
dependency-cruiser: Reported 20 violations (missed the large cycle)
arxo: Reported 6 distinct SCCs, including the 56-node cycle
Feature Comparison
Section titled “Feature Comparison”| Feature | arxo | madge | dependency-cruiser |
|---|---|---|---|
| Speed (Prettier) | 623 ms | 2,310 ms | 3,226 ms |
| Detects large cycles | Yes | No | No |
| Cycle-cut candidates | Yes | No | No |
| Call-graph analysis | Yes | No | No |
| Per-cycle details | Yes | No | Partial |
| Stability | Excellent | Good | Some parse errors |
Further Reading
Section titled “Further Reading”- SCC Overview - Metric overview
- CLI and Integration - CLI usage, pre-commit, GitHub Actions