Projekt na Nette 2.0.8 a rychlost načítání

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
TOMeek
Člen | 64
+
0
-

Zdravím,
dělám na projektu pro naší firmu, který běží na intranetu, ale narazil jsem na dobu načítání stránky. Resp každá stránka se načítá asi 1.6 sec. Pomocí timer() jsem se dopídil že nejdéle trvá Nette\Application\run(), konkrétně

$this->presenter = $this->presenterFactory->createPresenter($presenterName);

Projekt se skládá zatím asi z 12 modulů v každém po cca 5 presenterech + každý modul má svůj model pro komunikaci s databází. Poradíte kde by mohl být zakopaný pes? Původně jsem to sváděl na xdebug, protože když jsem ho měl zaplý, tak se stránka načítala asi 5 sec. ale vypnutím se ne vše vyřešilo.

hAssassin
Člen | 293
+
0
-

pokud bezis na intranetu, tak mas asi zapnuty nette debbuger, ze? mozna zkus vynutit produkcni mod a melo by to zase o neco klesnout. Taky se mrkni jestli ti to spravne cachuje sablony.

TOMeek
Člen | 64
+
0
-

Tak při vynucení produkce se web zrychlý, ale žádný hifi to není :-(
Je zajímavé, že když vymažu nacachovené šablony, tak se web načítá stejně dlouho, jako když jsou tam.

Caine
Člen | 216
+
0
-

Mate na serveru nejakou opcode cache? Ta ma zasadni vliv na rychlost tech scriptu. Napr bez 800ms s 80–120ms.

TOMeek
Člen | 64
+
0
-

Tak jsem nainstaloval XCache 3.0.1 a čas se dostal na 1.3 sec. Pokud vynutím produkci, tak jsem na rovné sekundě. Což by šlo už snést.

hrach
Člen | 1838
+
0
-

vykasli se na timer a normalne to vyprofiluj. pak budeme vedet vic :)

vvoody
Člen | 910
+
+1
-

Beží ti to na oknách? Možno to je to sekundové nabiehanie connection cez PDO na „localhost“ miesto „127.0.0.1“

TOMeek
Člen | 64
+
0
-

vvoody napsal(a):

Beží ti to na oknách? Možno to je to sekundové nabiehanie connection cez PDO na „localhost“ miesto „127.0.0.1“

Tak to tomu pomohlo

database:
	dsn: 'mysql:host=localhost;dbname=database'

jsem nahradil

database:
	dsn: 'mysql:host=127.0.0.1;dbname=database'

a nyní je načítání stránky za 300ms. O téhle „vlastnosti“ jsem vůbec nevěděl.

enumag
Člen | 2118
+
0
-

@TOMeek: Jedna z těch dokonalých windows features. :-P

Jan Mikeš
Člen | 771
+
0
-

vvoody napsal(a):

Beží ti to na oknách? Možno to je to sekundové nabiehanie connection cez PDO na „localhost“ miesto „127.0.0.1“

Oh díky, tohle jsem ani ja nevedel!
Mel jsem stale problem s tim, ze po prechodu z W7 na W8 mi na localu stranky loadovaly tak 10× pomaleji,

v configu jsem zmenil hosta db a hle z 2000ms je 150ms :)

Caine
Člen | 216
+
0
-

Mozna, ze by stalo za to, to dat sem https://doc.nette.org/…ubleshooting, protoze tenhle problem se tu uz parkrat resil, i kdyz nesouvisi primo s Nette..

Twista
Člen | 48
+
0
-

jestli bezis na win, tak to povetsinou dela presmerovani na ipv6,
resp zakomentuj ve C:\windowns\system32\drivers\hosts
radek na kterym je ::1 localhost

Editoval Twista (13. 2. 2013 14:46)

radas
Člen | 225
+
0
-

Potvrzuju. S „localhost“ 7 SQL dotazů za 2.25 s., s použitím „127.0.0.1“ jen za 196 ms.
V souboru hosts už jsem řádek ::1 localhost zakomentován měl, přesto to trvalo dlouho.

Editoval radas (13. 2. 2013 15:20)

paranoiq
Člen | 392
+
0
-

@radas tak odkomentuj řádek „127.0.0.1 localhost“

radas
Člen | 225
+
0
-

@paranoiq Máš pravdu. Pak už jede taky rychle.

Quinix
Člen | 108
+
0
-

Ve Windows 8 už ani odkomentování v hosts nefunguje, je nutný v registrech vynutit preferování IPv4 nad v6. (Viz poznámka v hosts – localhost name resolution is handled within DNS itself).

Možná by taky pomohlo nakonfigurovat databázi na poslouchání na IPv6 localhostu :)

TOMeek
Člen | 64
+
0
-

Ale je zajímavý, že debugbar v nette ukazoval načítání stránky 2 sekundy, ale rychlost na databázi ukazoval 5 ms. Proto mě možnost kouknout na tohle vůbec nenapadla.

Tomáš Kolinger
Člen | 136
+
0
-

Proto existuje profilování (a například xdebug + webgrind).

Taky jsem se s tímto bugem setkal a do jedné minuty jsem věděl, že 90% času žere mysql_connect.