Asynchron macht es nicht schneller, sondern sorgt dafür, dass deine HTTP-Requests in get_data gleichzeitig ausgeführt werden und nicht hintereinander.
In der jetzigen Foreach wird jedes mal gewartet, bis der eine HTTP-Aufruf fertig ist, damit die Schleife weiterlaufen kann.
Pro Iteration sind das also bestimmt acht Round-Trip-Times je nach Größe der Seite.
Bei einer Paketumlaufzeit von 40ms sind das schon 320ms. Und das ist der Best-Case würde ich sagen ^^
Wenn du es asynchron machst, dann läuft die Schleife sofort durch und im Hintergrund werden alle HTTP-Aufrufe gleichzeitig durchgeführt.
Umgesetzt wird es durch eine Event Loop und läuft im selben Thread ab.




Zitieren