IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Michal Kuba
Tvůrce
Avatar
Michal Kuba:19.2.2019 11:38

Ahoj,

Snažím se nějakým způsobem zrychlit web. Postavil jsem ho před časem na základě zde ukazované MVC architektury a web už je zaběhnutý, navíc nemám dostatek prostoru to celé předělat třeba do Nette. Poslední dobou ale při testování rychlosti zjišťuji, že mám obrovský TTFB (pohybuje se třeba i okolo 3000ms). Je možné, že určitou vinu nese hosting Wedos, ale určitě i samotný web by se dal urychlit.

Zkusil jsem: Zkoušel jsem hledat nějaké základní php cachovací knihovny, zajímavě vypadala https://www.phpfastcache.com/, ale tu se mi nepodařilo zprovoznit - přes composer jsem to stáhnul, potom ve SmerovacKontroler načítal nejprve autoload ve vendoru, který měl následně otevřít

use phpFastCache\CacheManager;

jenže to skončilo chybou, protože kvůli podmínce v indexu

function autoloadFunkce($trida)
{
        // Končí název třídy řetězcem "Kontroler" ?
    if (preg_match('/Kontroler$/', $trida))
        require("kontrolery/" . $trida . ".php");
    else
        require("modely/" . $trida . ".php");
}

to vždy chtělo hledat daný soubor v modelech a ne ve vendoru.

Jsem už trochu nešťastný z nesnadnosti něco implementovat do této architektury ale jak jsem říkal, na předělání do Nette nemám momentálně kapacitu.

Předem díky za jakékoliv rady :)

 
Odpovědět
19.2.2019 11:38
Avatar
Roman
Člen
Avatar
Odpovídá na Michal Kuba
Roman:19.2.2019 13:03

Měl jsem stejný problém a vyřešil to odchod od wedosu.

 
Nahoru Odpovědět
19.2.2019 13:03
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Roman
Michal Kuba:19.2.2019 13:06

Fakt, to může mít takový zásadní vliv Wedos na tom? Nebo se mi to jinde zlepší třeba o sekundu, ale stejně to furt bude špatné a na vině tak bude i nemožnost cachování webu?

 
Nahoru Odpovědět
19.2.2019 13:06
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:19.2.2019 13:59

Muzes to kesovat do souboru. Pri kazdem ulozeni prepises soubor ve sve slozce cache. Ted to nejspis ukladas jen do db. Takze bys to duplikoval do souboru.

Vyhoda? 99% operaci je typu SELECT. Pokazde vytahujes stejna data znovu. Takhle si jen zkontrolujes existenci souboru a kdyz existuje, posles ho uzivateli. Kdyz ne, tak provedes jeho vytvoreni (kontaktujes php, to kontakuje sql, ...) Da se to resit pres htaccess, takze ani na php nemusis.
Vyhoda? Hostingy, kdyz jsou pomale, sekaji se a kdesi cosi, tak spoustet php je dost pomala zalezitost.

2. Druha vec, casto byva na hostingu vypnute ob_start a je nutne ho psat do php kodu. Priklady zde neznam, ale vsadim se, ze jsou o spoustu veci osizene. Takze se potom nedaji pouzit cross-hosting.
Obvykle se posila stranka pri prvnim echo. Kazde echo odesila cast stranky. Takze, bud to vse ulozis do promene. a nebo zapnes na zacatku ob_start. A on kazde echo schova a odesle az vysledek uzivateli jako jednu stranku.
To by mohlo zasadne zrychlit tez nacitani.

Ale wedos nemam, tak netusim, co tam a jak je nastaveno.

 
Nahoru Odpovědět
19.2.2019 13:59
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na Peter Mlich
Michal Kuba:19.2.2019 18:52

Nejsem si jistý, ale momentálně se databázové dotazy nijak neukládají, maximálně pokud na hostingu disponují nějakou keší, jinak ne.

Pro začátek asi zkusím využít tento jednoduchý postup na úpravu databázového wrapperu a uvidím, jestli se to nějak značně změní: https://www.itnetwork.cz/…borove-cache

Nějaký takový způsob jsi měl na mysli tím ukládáním do souboru?

 
Nahoru Odpovědět
19.2.2019 18:52
Avatar
MicBlack
Člen
Avatar
Odpovídá na Michal Kuba
MicBlack:19.2.2019 19:03

Ahoj,

pošli odkaz na web, ať můžeme kouknout do network console. Takhle je to hodně abstraktní.

 
Nahoru Odpovědět
19.2.2019 19:03
Avatar
Tomáš Novotný:19.2.2019 19:08

A není problém spíše v optimálnějším nastavení DB tabulek, sloupců a k tomu mít uzpůsobené dotazy? Měl jsem praktickou zkušenost, že záměna db klíče u sloupce z 'fulltext' na 'key' měla za výsledek, že 5s se proměnilo v mžik.... na tabulce 170k+ rows

Nahoru Odpovědět
19.2.2019 19:08
∞ ... the exact amount of possibilities how to deal with the situation ... so by calm, your solution is one of many
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na MicBlack
Michal Kuba:19.2.2019 19:11

Na odkaz jsem zapomněl, omlouvám se.

Jedná se o https://zabav-deti.cz, který jsem před časem nasadil na novou a hezčí šablonu a až v tomto momentě jsem více pocítil celkové zpomalení, byť ani předtím to nebylo ideální.

Editováno 19.2.2019 19:11
 
Nahoru Odpovědět
19.2.2019 19:11
Avatar
David Klouček:19.2.2019 20:06

Zajímalo by mě, co na tom serveru děláš, že takhle jednoduchej web je pomalej, to snad ani nemůže dělat PHP. Zjisti si časy a počty DB dotazů, pak případně můžeš řešit indexy https://php.vrana.cz/…i-indexu.php

Jinak, nic tě nenutí to celý hned předělávat na Nette MVC, ale můžeš použít jednotlivý komponenty z něj.

 
Nahoru Odpovědět
19.2.2019 20:06
Avatar
David Klouček:19.2.2019 20:22

Taky se můžeš inspirovat tady a na svuj DB wrapper si udělat panel do Tracy:

https://api.dibiphp.com/…y.Panel.html
https://tracy.nette.org/cs/extensions

 
Nahoru Odpovědět
19.2.2019 20:22
Avatar
Odpovídá na Roman
Uživatel sítě :19.2.2019 20:28

Toto nebude Wedosem, sázím na špatnou optimalizaci DB či její nešikovné použití.

Nahoru Odpovědět
19.2.2019 20:28
Chybami se člověk učí, běžte se učit jinam!
Avatar
Michal Kuba
Tvůrce
Avatar
Odpovídá na David Klouček
Michal Kuba:19.2.2019 23:30

Wow, tak to jsem netušil, že když jsem před lety vytvářel celou DB a moc u toho nepřemýšlel (tou dobou jsem ještě význam indexů moc nechápal), tak teď přidání jen pár indexů pomohlo opravdu brutálně :)

Sice v PageSpeedu od Googlu se hodnocení na mobilu zvedlo asi jen o 8 bodů, ale TTFB spadlo tak, že už mě na to ani měřiče moc neupozorňují. Ještě to nějak poladím, ale už teď je při načtení stránky patrné obrovské urychlení, díky díky :)

 
Nahoru Odpovědět
19.2.2019 23:30
Avatar
Peter Mlich
Člen
Avatar
Odpovídá na Michal Kuba
Peter Mlich:20.2.2019 7:30

Vubec, stranku ukladat do html souboru. Abys nemusel volat ani php ani sql a hned posilal vysledek uzivateli v html.

 
Nahoru Odpovědět
20.2.2019 7:30
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:20.2.2019 7:34

No, jestli jsi nemel indexy v sql tabulkach, tak to je jasne :)
V podstate bys mel mit index na vsem, co pouzivas do WHERE nebo pro propojovani tabulek LEFT JOIN ... ON sloupec = sloupec.

 
Nahoru Odpovědět
20.2.2019 7:34
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 14 zpráv z 14.