Autor | Zpráva | ||
---|---|---|---|
Šuter Profil |
#1 · Zasláno: 21. 8. 2013, 13:09:43
Dobrý deň,
V poslednej dobe som sa začal zaujímať o zrýchlenie php kódu. Našiel som pár rád na webe: 1) používat include ./web/... miesto include web/... 2) Niekde som videl že switch je rýchlejšie ako else if 3) Videl som, že rýchlejšie je keď určím v html obrázku jeho rozmery Neviem čo je na tom pravdy, keď máte aj vy nejaké finty, tak sem s nimi :) Ďakujem |
||
Alphard Profil |
#2 · Zasláno: 21. 8. 2013, 13:22:01
To, co řešíte, je naprosto zanedbatelné. Zpravidla jsou největší brzdou SQL dotazy.
|
||
Jan Tvrdík Profil |
#3 · Zasláno: 21. 8. 2013, 13:33:48
Šuter:
Jak píše Alphard, to, co řešíš, jsou převážně blbosti. Reálný dopad na výkon mají především IO operace. V případě PHP je to především vkládání souborů ( include , require ), komunikace s databází, práce se soubory a komunikace se vzdáleným serverem (např. file_get_contents ). Kromě toho je ještě potřeba dávat si pozor na cykly (resp. rekurzi), protože rychlá operace provedená 10 tisíc krát se stává pomalou.
Reálné zrychlení se provádí zapnutím opcode cache (APC, Zend Optimizer...) a použitím paměťového key-value úložiště (APC, Redis, Memcache...). |
||
Šuter Profil |
#4 · Zasláno: 21. 8. 2013, 13:46:08
Ďakujem.
A čo re rýchlejšie 100-krát else if alebo cyklus, ktorý ich vypíše? |
||
Amunak Profil |
#5 · Zasláno: 21. 8. 2013, 13:52:03
3) nijak nesouvisí s PHP, ale zrychluje to vykreslení stránky u uživatele a stránka "neposkakuje", protože se při výpočtech vykreslení stránky nemusí čekat, než se načte obrázek, aby se zjistily jeho reálné rozměry. Prostě se vezme hodnota z HTML/CSS a vykreslí se to rovnou, obrázek se donačte až potom.
|
||
juriad Profil |
#6 · Zasláno: 21. 8. 2013, 13:56:05
Šuter:
To je irelevantní otázka, když budeš mrtvej. Zabije tě programátor, který projekt po tobě převezme. Nehoň se nanosekundama a zkus se zamyslet. Velké projekty (wordpress, nette) jsou úspěšné mimo jiné z důvodu, že jsou přehledné. |
||
Joker Profil |
#7 · Zasláno: 21. 8. 2013, 15:52:54
Šuter:
Jak psali kolegové, uvedené věci je zbytečné řešit. První důležitá věc: Dneska rychlost kódu obvykle není na prvním místě. Určitě ne na úkor přehlednosti a udržovatelnosti. Obvykle v krajním případě vyjde levněji zaplatit víc paměti a výkonnější server, než čas programátora strávený opravami chyb a luštěním nesrozumitelného kódu. Jiná věc je, že tihle optimalizátoři řešíci věci jako rychlost jednoduchých a složených uvozovek jsou většinou lidi, kteří stráví dlouhé hodiny nad debatami o rozdílu <0,001 ms mezi dvěma konstrukcemi, přičemž klidně propálí 1500 ms tím, že výběr jednoho databázového záznamu s určitou hodnotou primárního klíče řeší přes SELECT * FROM tabulka + cyklus.
Takže v první řadě bych se naučil pořádně a správně programovat. Dát if kde má být if, dát switch kde má být switch, cyklus kam patří cyklus, atd. Místo „Co je rychlejší?“ se ptát „Co se nejlépe hodí pro danou situaci?“ (což shodou okolností bývá často i výkonově dobré řešení). Ve druhé řadě se naučil optimalizovat nejčastější brzdy, v našem případě asi hlavně databázové dotazy a cykly (a zejména kombinaci obojího). A to je asi tak všechno, co bych řešil předběžně. Další optimalizace až ve chvíli, kdy se ukáže, že jsou opravdu potřeba. A hlavně kdy můžu reálně změřit, co mi která z nich přinese. |
||
Šuter Profil |
#8 · Zasláno: 21. 8. 2013, 20:22:15
Ďakujem.
|
||
Časová prodleva: 11 let
|
0