2.9 KiB
2.9 KiB
source, confidence, namespace, last_synced, alwaysApply
| source | confidence | namespace | last_synced | alwaysApply |
|---|---|---|---|---|
| ~/DuckDuckGo/apple-browsers.git/main/.cursor/rules/network-quality-test-config.mdc | 0.9 | work | 2026-04-28 | false |
NetworkQualityMonitor Test Configuration
Optimized Test Parameters
The NetworkQualityMonitor uses carefully tuned parameters to balance speed and accuracy for browser performance testing.
Test Phases and Data Sizes
HTTP Response Testing (Latency)
- Samples: 15 per endpoint
- Endpoints: ~12 globally distributed CDNs and services
- Methodology: Warm-up phase + interleaved sampling
- Timeout: 5 seconds
- Total time: ~3-4 minutes
Bandwidth Testing (Download)
- File size: 50MB per server (reduced from 100MB)
- Servers: 3 test servers (CloudFlare, OVH, Hetzner)
- Runs: 1 per server (reduced from 2)
- Total download: ~150MB (was 800MB)
- Timeout: 20 seconds per server
- Measurement window:
- At 100 Mbps: ~4 seconds
- At 25 Mbps: ~16 seconds
- At 10 Mbps: ~40 seconds
Upload Testing
- Chunk size: 20MB (reduced from 50MB)
- Chunks: 2 sequential uploads
- Total upload: 40MB (was 100MB)
- Timeout: 25 seconds total
- Servers: 3 endpoints
DNS Resolution Testing
- Domains: 11 popular domains
- Tests: Resolution time and failure rate
- Timeout: Default system resolver timeout
Performance Optimizations
Why These Sizes?
50MB for Downloads:
- Large enough to overcome TCP slow start
- Provides stable measurement window (4-40 seconds)
- Small enough to complete quickly on slower connections
- Balances accuracy with user experience
20MB for Uploads:
- Sufficient to measure upload capacity
- Most users have asymmetric connections (slower upload)
- Reduces test time significantly
Total Test Duration
Typical completion times:
- Fast connection (100+ Mbps): ~2-3 minutes
- Good connection (25-50 Mbps): ~3-4 minutes
- Fair connection (10-25 Mbps): ~4-5 minutes
- Poor connection (<10 Mbps): ~5-7 minutes
Data Usage
Total data transferred:
- Download: ~150MB
- Upload: ~40MB
- Total: ~190MB (reduced from ~900MB)
Configuration Code
TestConfiguration(
latencyTestURLs: [/* 12 CDN endpoints */],
bandwidthTestURLs: [
"https://speed.cloudflare.com/__down?bytes=52428800", // 50MB
"https://proof.ovh.net/files/50Mb.dat", // 50MB
"https://speed.hetzner.de/50MB.bin" // 50MB
],
uploadTestURLs: [/* 3 upload endpoints */],
dnsTestDomains: [/* 11 popular domains */],
latencySamplesPerEndpoint: 15,
bandwidthRunsPerServer: 1,
uploadChunkSize: 20_971_520, // 20MB
uploadChunkCount: 2,
latencyTestTimeout: 5,
bandwidthTestTimeout: 20,
uploadTestTimeout: 25
)
Quick Test Mode
For rapid connectivity checks, the system also supports:
- 10MB quick downloads for server selection
- HEAD requests for basic connectivity
- Reduced sample counts for faster results