Autor | Zpráva | ||
---|---|---|---|
anonymníí Profil * |
#1 · Zasláno: 23. 1. 2015, 16:32:19
Ahoj,
převzal jsem do správy e-shop, nejedná se o žádné OS řešení, je psaný na míru a používá klasicky PHP/MySQL/Smarty. Když jsem začal pátrat po tom, proč je tak strašně pomalý, ve vývojářských nástrojích mě zarazilo, že obě stránky se vygenerují celkem rychle, v řádu ±0,3s, ale trvá strašně dlouho, než se vůbec začne něco generovat. Konkrétně ve vývojářských nástrojích vidím latenci (čekání) na samotnou stránku, a to kolísavě od 1,4 do 2 sekund. Vše běží na VPS, na co bych se měl zaměřit, abych snížil tuto položky, tedy latenci? Předpokládám, že by to šlo vyřešit vhodným cachováním, proto jsem toto přidal i do titulku, ale přiznám se, že nevím jak. Moc se v tom nevyznám. Stránka nějaké cachování nastavení má, ale to se asi týká prohlížečové cache (cache-control, atp.). Rád poskytnu i další informace, jen momentálně nevím, které jsou podstatné, na co se zaměřit. Díky. |
||
Keeehi Profil |
#2 · Zasláno: 23. 1. 2015, 17:35:53
Ono to s tím časem není až tak jednoduché. Třeba u této stránky mi chrome v detailu zobrazí 6 různých časů. První 3 se týkají dejme tomu DNS a ty druhé 3 už představují komunikaci se servrem. První z nich je odeslání požadavku, tam nejspíše problém není. A zbývají mi 2 údaje.
Waiting (TTFB) 136.811 ms Content Download 3.116 ms Záleží na tom, jak je ten eshop napsaný. Mohou nastat 2 případy (a celá škála mezi nimi, ale to je teď jedno): 1) Script čeká, až se mu všechno vygeneruje a když je těsně před koncem a má už celý výstup pro uživatele k dispozici, tak ho najednou odešle. V tom příadě by ty vaše časy znamenaly, že se stránka 1,4 - 2 sekundy generuje a ten výstup se stihne odeslat za 0,3 sekundy. 2) Script odesílá data ihned jakmile je má k disozici, nečeká, až je bude mít všechna. V takovém případě by ty časy znamenaly, že se vám to někde 1,4-2 sekundy fláká (například se čeká na přidělení procesorového času pro PHP) a pak se to zvládne vše za 0,3 sekundy vygenerovat a odeslat. Velmi pravděpodobně to bude někde blízko k té možnosti 1), takže generování okolo 2 sekund a odesílání 0,3. Pokud chcete zjisti, kde je to úzké hrdlo, časy z konzole vám v tom moc nepomůžou. Sežeňte si na to profiler a ten už dokáže zjistit, kde v kódu se tráví nejvíce času. Osobní tip: dazabáze |
||
Časová prodleva: 10 let
|
0