mirror of
https://github.com/Horizontal42/netsleuth.git
synced 2026-11-10 19:12:03 +03:00
perf: parallelize cloudflare speedtest uploads using asyncio.gather
Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com>
This commit is contained in:
parent
8c99ac78b7
commit
7445a19671
1 changed files with 4 additions and 3 deletions
|
|
@ -157,13 +157,14 @@ async def tier_cloudflare(client: httpx.AsyncClient, cfg: Speedtest, timeout: fl
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
down_samples.append((len(response.content), time.perf_counter() - began))
|
down_samples.append((len(response.content), time.perf_counter() - began))
|
||||||
cfl4 = parse_server_timing_cfl4(response.headers.get("server-timing", "")) or cfl4
|
cfl4 = parse_server_timing_cfl4(response.headers.get("server-timing", "")) or cfl4
|
||||||
up_samples: list[tuple[int, float]] = []
|
async def _upload(size: int) -> tuple[int, float]:
|
||||||
for size in cfg.upload_sizes_bytes:
|
|
||||||
payload = b"\x00" * size
|
payload = b"\x00" * size
|
||||||
began = time.perf_counter()
|
began = time.perf_counter()
|
||||||
response = await client.post(f"{cfg.cloudflare_base_url}/__up", content=payload, timeout=timeout)
|
response = await client.post(f"{cfg.cloudflare_base_url}/__up", content=payload, timeout=timeout)
|
||||||
response.raise_for_status()
|
response.raise_for_status()
|
||||||
up_samples.append((size, time.perf_counter() - began))
|
return size, time.perf_counter() - began
|
||||||
|
|
||||||
|
up_samples = await asyncio.gather(*[_upload(size) for size in cfg.upload_sizes_bytes])
|
||||||
return SpeedResult(
|
return SpeedResult(
|
||||||
method="cloudflare",
|
method="cloudflare",
|
||||||
download_mbps=throughput_from_samples(down_samples),
|
download_mbps=throughput_from_samples(down_samples),
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue