perf: flatten DoH tasks for concurrent gathering (#15)

Modified `collect_dns_advanced` to gather DoH probes simultaneously by building a single list of tasks, replacing the sequential gathering loop. Added a similar concurrent optimization to `system_probes` fetching.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
This commit is contained in:
Horizontal42 2026-08-19 16:53:21 +03:00 • committed by GitHub
parent 3ab957fd0e
commit 67f677a536
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -141,14 +141,13 @@ async def collect_dns_advanced(
bogus_probe_name: str, bogus_probe_name: str,
timeout: float, timeout: float,
) -> DnsAdvanced: ) -> DnsAdvanced:
system_probes = [await resolve_system(name, timeout) for name in control_names] system_probes = list(await asyncio.gather(*(resolve_system(name, timeout) for name in control_names)))
doh_probes: list[ResolverProbe] = [] doh_tasks = [
for name in control_names: resolve_doh(client, ep.name, ep.url, name, timeout)
doh_probes.extend( for name in control_names
await asyncio.gather( for ep in doh_endpoints
*(resolve_doh(client, ep.name, ep.url, name, timeout) for ep in doh_endpoints) ]
) doh_probes = list(await asyncio.gather(*doh_tasks))
)
divergences: list[str] = [] divergences: list[str] = []
for system_probe in system_probes: for system_probe in system_probes: