Rychlost nového Nette a Windows
- Tomáš Kolinger
- Člen | 136
Pozoruji menší problém s rychlostí, pokud používám Nette (2.2.0) na Windows.
Stejnou aplikaci mám na linuxovém VPS, kde je response time okolo 20–30ms, stejná stránka, bez databáze, trvá na Windows 400 – 500ms. Prostředí je jak na VPS, tak Windows podobné (PHP 5.5, nginx + php-fpm). Pokud zapnu debug, tak vidím, že čas sežere samotná PHP aplikace, není tedy problém mezi PHP a webserverem. Když se začne generovat laděnka, tak už sme na 800ms – 1500ms, což je prostě pomalé.
Ještě divnější je fakt, že jiná aplikace (Nette 2.0) se zapnutým debugem funguje na localhostu (Windows) rychle a response time je okolo 100ms, na VPS zase 20–30ms. Tudíž to nevypadá na problém v konfiguraci počítače. 404 landěnka za 150ms.
Další věc je ta, že dev počítač má lepší HW než VPS – SSD, i5 3GHz quad-core proti HDD a jednomu vláknu.
V čem by mohla být chyba? Proč je Nette na VPS o tolik rychlejší, když má server horší HW? Proč podobně komplikovaná stránka v Nette 2.0 s tímto problémem netrpí?
Profilování moc nepomohlo. Vidím, že nejvíc času zabere autoload souborů (což dělá composer) – 18%, další je parsování neonu 7%, ale to by mělo být zrovna rychlejší. Disk i procesor je lepší.
Editoval Tomáš Kolinger (27. 5. 2014 11:49)
- David Matějka
- Moderator | 6445
A nemas prave treba to profilovani (nebo jiny debug nastroj) porad u toho projektu zapnuty? to muze totiz dost zpomalit odezvu :)
- Tomáš Kolinger
- Člen | 136
Ne. Normálně mám xdebug vypnutý. Navíc to nevysvětluje druhou aplikaci v Nette 2.0, která běží na totožném webserveru se stejným php.ini a je rychlá.
Pokud to samé vyzkouším na normálním main-stream notebooku – HDD, dvoujádro, apache, php 5.5. Tak generování stránky vylítne z 500ms na 1s. S tím, že se používá keš atp. Pokud se generuje keš, tak to trvá desítky sekund.
Je to opravdu divné a bohužel hodně otravné.
Editoval Tomáš Kolinger (27. 5. 2014 11:59)
- Tomáš Kolinger
- Člen | 136
Zkoušel jsem. Stejný výsledek. Navíc na té stránce se žádný dotaz nepokládá. Jde o vypsání formuláře.
- Caine
- Člen | 216
Zkus taky uplne vypnout nette debugovani, jeden cas mi https://github.com/…/Strings.php#L48 tahle metoda pouzita nekde v debuggeru zpusobovala silene pomalou odezvu..