Pomalé první načtení Nette
- Firest
- Člen | 12
Zdravím,
při tvorbě aplikace na Nette (2.3.2) jsem narazil na jeden (pro mě dost zásadní) problém. Při spuštění stránky po nějaké době (v řádu hodin) vždy trvá velmi dlouho, než se stránka načte (přes 3000ms), dál už ale jede v pořádku. Mohl by mi někdo prosím poradit, jak tento problém vyřešit (v nějaké diskuzi jsem četl, že je to způsobeno RobotLoaderem, ale nikde jsem nezjistil, jak případně prodloužit jeho cachování).
Děkuji
- llook
- Člen | 407
Nemyslím si, že to bude RobotLoaderem. Ten se rebuilduje až ve chvíli, kdy se pokusíš naloadovat třídu, kterou ještě nezná, tzn. když přidáš nový kód.
Tohle ani nemusí souviset s Nette, může to dělat třeba i webserver nebo databáze: https://wordpress.stackexchange.com/…s-slower-1-s
- Tomáš Kolinger
- Člen | 136
On se problém řeší špatně, když nevíš, co ten problém vlastně je. Může to být spousta věcí a bez toho, aby si zjistil podrobnosti, můžeš jen hádat a zkoušet pokus/omyl, což není moc efektivní.
Takže doporučuju si na localu nainstalovat xdebug a zapnout profiler…
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "cesta/k/logum"
Pak jen stačí tu situaci vyvolat a on se ti uloží log, co se volalo, jak dlouho, … Tyhle logy si můžeš prohlížet třeba přes webgrind. Z výstupu by si měl lehce vydedukovat na co se čeká či co zabírá tolik času a potom to můžeš dále řešit. Jen počítej s tím, že s profilerem to bude ještě pomalejší, což je normální, protože se ti generuje obrovskej log → zapínej profiler jen pokud to vysloveně potřebuješ.
Editoval Tomáš Kolinger (23. 6. 2015 8:38)
- Firest
- Člen | 12
Tomáš Kolinger napsal(a):
On se problém řeší špatně, když nevíš, co ten problém vlastně je. Může to být spousta věcí a bez toho, aby si zjistil podrobnosti, můžeš jen hádat a zkoušet pokus/omyl, což není moc efektivní.
Takže doporučuju si na localu nainstalovat xdebug a zapnout profiler…
xdebug.profiler_enable = 1 xdebug.profiler_output_dir = "cesta/k/logum"
Pak jen stačí tu situaci vyvolat a on se ti uloží log, co se volalo, jak dlouho, … Tyhle logy si můžeš prohlížet třeba přes webgrind. Z výstupu by si měl lehce vydedukovat na co se čeká či co zabírá tolik času a potom to můžeš dále řešit. Jen počítej s tím, že s profilerem to bude ještě pomalejší, což je normální, protože se ti generuje obrovskej log → zapínej profiler jen pokud to vysloveně potřebuješ.
Díky, podle xdebugu je problém v připrojení k DB (Nette\Database\Connection->connect).
- Unlink
- Člen | 298
Tak s tým asi nič moc nespravíš, mne to viac menej robí tiež, pokiaľ po dlhšej dobe skúsim, tak tiež to trvá dlhšie a niekedy mi tracy ukazuje aj zo 5s na dotazoch.
Ide o to, že je potrebné vytvoriť spojenie k databáze, inicializovať
nejaké veci…
takže ako hovorili ostatný, toto asi moc s nette nesúvisí.
Ale že sa to deje aj na produkcii je zvláštne.
- llook
- Člen | 407
Tak to vypadá na nějaké nastavení v my.cnf
. Může to být
třeba DNS lookup, který je by default zapnutý: https://dev.mysql.com/…t-cache.html
- Firest
- Člen | 12
llook napsal(a):
Tak to vypadá na nějaké nastavení v
my.cnf
. Může to být třeba DNS lookup, který je by default zapnutý: https://dev.mysql.com/…t-cache.html
Díky, kouknu na to.
newPOPE napsal(a):
@Firest skus sa este pohrat s hostom k DB, namiesto localhost (alebo co tam mas) tam vraz IPcku.
Na developu mám 127.0.0.1 a na produkčním mám taky IP, ale není v tom žádný rozdíl.