Ocakavame, ze async verzia bude rychlejsia nez threads, lebo striedanie uloh pri async je
kooperativne, nemusime sa pri nom spoliehat na OS a coroutiny su celkovo viac lightweight nez
thready.

Trikrat som pustil `make` s X = 15, Y = 3000, tu su vystupy (zaujima nas asi hlavne elapsed):

threads
76.18user 37.92system 0:55.76elapsed 204%CPU
75.87user 38.41system 0:55.03elapsed 207%CPU
79.22user 39.03system 1:01.49elapsed 192%CPU

async
85.50user 6.99system 0:49.01elapsed 188%CPU
78.69user 6.28system 0:44.82elapsed 189%CPU
82.78user 6.73system 0:47.21elapsed 189%CPU

Vidime, ze async verzia je o kusok rychlejsia nez threads, ale nie ovela. Mozno by pomohlo, keby
sme zvysili pocet uloh (teda X).

Tu sa vsak prejavi (pravdepodobne) problem kniznice http.server, ktora z nejakeho dovodu nezvlada
vyssi pocet sucasnych pripojeni, niektore volania urlopen v ATask preto obcas hodia
ConnectionResetError. Mame dve moznosti - ak sa request nepodari, neriesit to a tvarit sa ze bol
uspesny, alebo ho opakovat, az kym nie je naozaj uspesny (takto je to aktualne v kode).

Vyskusame obe moznosti, pre X = 200, Y = 200:

threads (nepodarene requesty povazujeme za uspesne)
81.08user 39.42system 1:32.69elapsed 130%CPU
81.85user 39.71system 1:27.12elapsed 139%CPU
75.41user 36.23system 1:11.38elapsed 156%CPU

threads (nepodarene requesty opakujeme)
82.75user 39.22system 1:24.83elapsed 143%CPU
72.45user 35.79system 1:14.40elapsed 145%CPU
72.56user 35.07system 1:12.68elapsed 148%CPU

async
75.99user 5.88system 0:44.56elapsed 183%CPU
60.95user 4.87system 0:35.57elapsed 185%CPU
69.86user 5.44system 0:40.69elapsed 185%CPU

Casy maju pomerne velky rozptyl, je vsak jasne vidno, ze async verzia je rychlejsia ako threads
(ci uz sa ku connection errorom staviame pozitivne alebo negativne, na cas to nema velky vplyv,
netreba ich preto vobec brat do uvahy).

Dalsia dobra sprava je, ze pri vsetkych testoch je system time pri async verzii podstatne mensi ako
pri threads verzii (cca. 30% vs. menej ako 10%), co naznacuje, ze netravime zbytocne cas v OS kode.

Netreba ale zabudat ani na to, ze v jednej a druhej verzii pouzivame aj inu implementaciu http
servera a klienta, co moze mat na rychlost tiez nezanedbatelny vplyv.
