freeloader
Average download
—
 
Peak download
—
 
Average upload
—
 
Peak upload
—
 
Latency
—
 

About this demo

Small generated test pattern

What gets measured

Download

From Resource Timing. Transfers that overlap in time are merged into a burst, and the burst's bytes are divided by the wall time it occupied. Cache hits and cross-origin responses without Timing-Allow-Origin report zero bytes and are skipped.

Upload

From XMLHttpRequest upload progress events, which mark exactly when a request body finished going out, and from fetch timings with one round trip subtracted. Only body sizes are read — never body contents.

Latency and jitter

Round trip is the minimum time to first byte across recent requests, or half the shortest TCP+TLS handshake when one was measured. Jitter is the mean absolute deviation of time to first byte around its median.

Confidence

Rises with sample count, total bytes observed and agreement between samples. A page like this one moves too few bytes to say anything, so confidence stays low rather than the number being wrong.

What it cannot do

Privacy

Everything stays in the browser. The library makes no requests of its own, sends nothing anywhere, and keeps its state in localStorage under a single key. It reads the sizes and timings of transfers the page already made, never their contents.