Skip to content

Commit fc00aa4

Browse files
Merge pull request #60 from robinmordasiewicz/feature/issue-59-browser-pooling
feat: implement browser pooling for 40-60% performance improvement
2 parents 636203c + 53b362f commit fc00aa4

File tree

10 files changed

+2689
-3
lines changed

10 files changed

+2689
-3
lines changed

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,36 @@ What maintenance is scheduled?
4343
Search for API Gateway
4444
```
4545

46+
## Performance
47+
48+
### Browser Pooling
49+
50+
The MCP server uses browser instance pooling for 40-60% faster scraping performance. Browser instances are reused across operations instead of creating new ones each time.
51+
52+
**Configuration:**
53+
- `SCRAPER_POOLING_ENABLED=true` - Enable/disable pooling (default: true)
54+
- `SCRAPER_POOLING_MIN_SIZE=1` - Minimum browsers in pool (default: 1)
55+
- `SCRAPER_POOLING_MAX_SIZE=3` - Maximum browsers in pool (default: 3)
56+
- `SCRAPER_POOLING_IDLE_TIMEOUT=60000` - Close idle browsers after ms (default: 60s)
57+
- `SCRAPER_POOLING_ACQUIRE_TIMEOUT=10000` - Browser acquisition timeout (default: 10s)
58+
- `SCRAPER_POOLING_HEALTH_CHECK_INTERVAL=30000` - Health check frequency (default: 30s)
59+
- `SCRAPER_POOLING_ENABLE_METRICS=true` - Track performance metrics (default: true)
60+
61+
**Performance Gains:**
62+
- Single scrape: ~50% faster (2500ms → 1200ms)
63+
- Parallel scrapes: ~51% faster (8300ms → 4100ms)
64+
- Cache hit rate: >80% after warmup
65+
66+
**Resource Usage:**
67+
- Each browser: ~150MB memory
68+
- Max pool (3 browsers): ~450MB memory
69+
- Idle cleanup: Automatic after 60s
70+
71+
**Disable if needed:**
72+
```bash
73+
SCRAPER_POOLING_ENABLED=false
74+
```
75+
4676
## Links
4777

4878
- [npm](https://www.npmjs.com/package/@robinmordasiewicz/f5xc-cloudstatus-mcp)

0 commit comments

Comments
 (0)