- Directory: ~/git/hub (65 repositories, depth 2)
- System: macOS
- Node.js: v22.15.0
| Method | Time | Repos Found | Notes |
|---|---|---|---|
find command |
0.024s | 62 | Fastest, but no metadata |
| lcode (first run) | 0.272s | 65 | Includes language detection |
| lcode (cached) | 0.314s | 65 | Instant with metadata |
| lcode + filter | 0.309s | 30 (filtered) | Filter adds ~0ms |
| Method | Time | Results | System Load |
|---|---|---|---|
grep -r |
101.964s | 14,290 files | High I/O |
| lcode | 0.309s | 65 repos | Low I/O |
Speed Improvement: lcode is 330x faster than grep for finding repositories
| Metric | Value |
|---|---|
| Maximum resident set size | 86.4 MB |
| Real time | 0.49s |
| User time | 0.20s |
| System time | 0.09s |
- Language Detection: Automatically detects 13+ languages with zero overhead
- Smart Caching: 5-minute TTL cache for instant subsequent searches
- Low Memory: ~86 MB memory footprint
- Metadata Rich: Shows README previews, language tags, relative paths
- Filter Performance: Language filtering adds negligible overhead (~0ms)
- Consistent Speed: Cached results are instant regardless of filter complexity
- Cold start: 0.272s (includes full scan + language detection)
- Warm cache: 0.314s (includes loading cache + rendering)
- With filters: 0.309s (filtering is in-memory, very fast)
- Memory efficient: 86 MB for 65 repos with full metadata
| Task | Best Tool | Reason |
|---|---|---|
| Find git repos | find |
Fastest for simple listing |
| Find repos by language | lcode | Only tool with language detection |
| Interactive selection | lcode | Fuzzy search + metadata |
| Automation/CI | lcode | Non-interactive mode + filters |
| Content search | grep/rg |
For searching file contents |
lcode excels at:
- Repository discovery with rich metadata
- Language-based filtering (unique feature)
- Interactive workflows with fuzzy search
- Automation with consistent performance
Trade-offs:
- Slightly slower than bare
find(0.272s vs 0.024s) - But provides 100x more value (language detection, README preview, caching)
- Memory usage is reasonable (~86 MB)
Recommendation: Use lcode for any repository management task. The 0.25s overhead is negligible compared to the value of language detection, caching, and interactive features.
# Traditional find
time find ~/git/hub -maxdepth 2 -name ".git" -type d 2>/dev/null | wc -l
# lcode first run
node index.mjs --cleanup && time node index.mjs ~/git/hub 2 --list
# lcode cached
time node index.mjs ~/git/hub 2 --list
# lcode with filter
time node index.mjs ~/git/hub 2 --list --lang ts
# grep search (slow)
time grep -r "package.json" ~/git/hub --include="package.json" -l 2>/dev/null | wc -l
# Memory usage
/usr/bin/time -l node index.mjs ~/git/hub 2 --list --lang ts