Hrozně pomalé Apitte oproti Nette sandboxu
- Polki
- Člen | 553
Ahoj, běžně si dělám řešení pro své API v Nette.
Řekl jsem si ale, že bych mohl konečně vyzkoušet knihovnu Apitte, protože je dělaná jen pro API, takže mi přišlo logické, že když chci dělat čisté API, tak nemusím používat Nette router, Latte apod. knihovny.
Nainstaloval jsem si tedy čisté Apitte a vrhl se do testování.
Udělal jsem si metodu pro získávání dat metodou GET.
a pak vedle v projektu jsem si udělal funkci v mém řešení v Nette sandboxu:
Samozřejmě mám v Nette sandboxu upravený Error presenter tak, aby vracel Json s popisem chyby.
Otázka zní:
Když jsem udělal performance test pomocí aplikace ‚ReadyAPI‘ –
6000 requestů, tak jsem narazil na to, že moje řešení v Nette sandboxu
má odezvu průměrně 62ms, zatímco Appite řešení má
odezvu 220ms
Otestoval jsem si i Error 500 (N – 87ms, A – 202ms) a Error 404 (N – 81ms, A – 169ms).
Chci se zeptat, jestli mám někde chybu já, nebo jestli řešení čistě pro Api je prostě pomalejší, než obecné řešení pro web?
Editoval Polki (31. 8. 2021 21:32)
- Felix
- Nette Core | 1258
Diky moc. Zkusil jsem Apache Benchmark a PHP development server. Vysledky jsou temer stejne. ± par ms vykyv, kdyz to poustim porad dokola.
Nette
➜ ab -n 100 -c 2 http://localhost:8002/api/v1/test
This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient).....done
Server Software:
Server Hostname: localhost
Server Port: 8002
Document Path: /api/v1/test
Document Length: 125 bytes
Concurrency Level: 2
Time taken for tests: 0.390 seconds
Complete requests: 100
Failed requests: 0
Total transferred: 41000 bytes
HTML transferred: 12500 bytes
Requests per second: 256.48 [#/sec] (mean)
Time per request: 7.798 [ms] (mean)
Time per request: 3.899 [ms] (mean, across all concurrent requests)
Transfer rate: 102.69 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 4 7 0.8 7 10
Waiting: 4 7 0.8 7 9
Total: 4 8 0.8 7 10
WARNING: The median and mean for the total time are not within a normal deviation
These results are probably not that reliable.
Percentage of the requests served within a certain time (ms)
50% 7
66% 8
75% 8
80% 8
90% 9
95% 9
98% 10
99% 10
100% 10 (longest request)
Apitte
➜ ab -n 100 -c 2 http://localhost:8001/api/v1/chips/test
This is ApacheBench, Version 2.3 <$Revision: 1879490 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient).....done
Server Software:
Server Hostname: localhost
Server Port: 8001
Document Path: /api/v1/chips/test
Document Length: 123 bytes
Concurrency Level: 2
Time taken for tests: 0.363 seconds
Complete requests: 100
Failed requests: 0
Total transferred: 27700 bytes
HTML transferred: 12300 bytes
Requests per second: 275.32 [#/sec] (mean)
Time per request: 7.264 [ms] (mean)
Time per request: 3.632 [ms] (mean, across all concurrent requests)
Transfer rate: 74.47 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 1
Processing: 4 7 1.1 7 13
Waiting: 4 7 1.1 6 13
Total: 4 7 1.1 7 13
Percentage of the requests served within a certain time (ms)
50% 7
66% 7
75% 7
80% 8
90% 8
95% 10
98% 11
99% 13
100% 13 (longest request)
- Polki
- Člen | 553
Ok já to zkouším přímo na serveru, který je u stejného poskytovatele a s konfigurací jako produkce, kam se to bude nahrávat.
Od rána testuju a tohle jsou ± průměrné časy.
Nette sandbox: https://pasteboard.co/Kizjcng.png
Apitte: https://pasteboard.co/KiziU4b.png
Když to spustím lokálně tak je to cca 7–8ms vs 9–10ms, takže na locale to takový rozdíl není, ale straší mě ten server.
Min sloupec to na obrázku to nezobrazuje, ale vždy je to kolem 38ms u obou.. Bohužel nevím, jak si nechat zobrazit medián :D Je to prvně, co testuju API.
- David Grudl
- Nette Core | 8258
Na tohle je nejlepší nainstalovat https://www.blackfire.io a zjistit, co přesně to brzdí, jinak je to hádání z křišťálové koule. Důvodů může být šíleně moc.
- Polki
- Člen | 553
David Grudl napsal(a):
Na tohle je nejlepší nainstalovat https://www.blackfire.io a zjistit, co přesně to brzdí, jinak je to hádání z křišťálové koule. Důvodů může být šíleně moc.
Okay, uvidíme, jestli s tím bude zákazník ok.