Archív Inet.sk Pôvodný autor: Redakcia Inet.sk
08. 04. 2008 o 14:45 7108x

Optimalizácia PHP pre začiatočníkov

Každý z nás pri písaní PHP skriptov dospel k bodu, kedy sa mu zdalo ich spracovanie pomalé a zdĺhavé. Problém však nebol v počítači, ktorý skripty spracovával, ale väčšinou v našich postupoch, ktoré sme zvolili. Ak ste svoje skripty nikdy neoptimalizovali, tento článok je určený práve Vám.
Optimalizácia PHP pre začiatočníkov

Prečo a ako optimalizovať?

Nebudeme tu rozpisovať dlhú a pomerne rozsiahlu teóriu, ktorú väčšina z Vás i tak nepochopí a nikdy ju ani nebude potrebovať. V skratke by sa dalo povedať, že optimalizovať PHP sa Vám najviac oplatí vtedy, ak máte pomerne navštevované stránky a chcete urýchliť ich spracovanie.

Optimalizáciou navyše znížite záťaž Vášho webhostingu alebo serveru, ale môžete napr. ušetriť aj na prenose dát a podobne. Optimalizácia teda neprospeje len návštevníkom Vašej stránky, ale z časti poteší aj prevádzkovateľa Vášho webhostingu či serveru.

Samotná optimalizácia PHP skriptov je pomerne rozsiahla a náročná, avšak my si ukážeme len základy, ktoré pozostávajú zo správnych zápisov funkcií, cyklov a podobne. Takto získané vedomosti Vám budú vo väčšine prípadov postačovať, ale nie sú všeliek.
 

Optimalizácia krok za krokom

Dosť bolo nudných úvodných slov, pristúpme rovno k činu. Postupne si predstavíme niektoré základné tipy a triky ako Váš skript urobiť efektívnejším. Občas si spomenieme zopár stránok, ktoré Vám pomôžu rozšíriť si už nadobudnuté znalosti.
 

Ako sa do hory volá, tak sa z hory ozýva:

  • Pre výstup na obrazovku nepoužívajte print ale echo, ktoré je o trochu rýchlejšie.
     
  • Ak chcete vypísať viacero premenných, nepoužívajte tento zápis:

    echo $premenna1." nejaký text ".$premenna2;

    Použite radšej tento:

    echo $premenna1, ' nejaký text ', $premenna2;

     
  • Ak Váš výstup neobsahuje premenné, nepoužívajte dvojité úvodzovky "", ale iba jednoduché ' '.

    To isté platí aj pre zápisy polí (napr. $pole['clen']), funkcií (napr. include('nastavenia.php');) a podobne. Uľahčíte tak ich spracovanie.

    Pre doplnenie si prečítajte aj pár slov o úvodzovkách


Cyklím, cyklíš, cyklíme a podobne:

  • Keď používate cyklus for, nastavte jeho max. hodnotu mimo neho.

    Nesprávne:
    for ($a = 0; $a < sizeof($pole); ++$a) {
      // telo cyklu
    }

    Správne:
    $max = sizeof($pole);
    for ($a = 0; $a < $max, ++$a) {
       // telo cyklu
    }

    Podľa testov skrátite spracovanie cyklu v niektorých prípadoch až o polovicu. Prečo? Samotné volanie funkcie potrebuje nejaký čas na spracovanie, takže keď ju použijete v cykle, ktorý spracováva napr. 100 členné pole, tak je táto funkcia volaná až 101krát. Vďaka definovaniu max. hodnoty mimo cyklus je volaná len raz, čo je dosť značný rozdiel.
     
  • Určite si všimli, že sme použili namiesto štandardnej inkrementácie $a++ jej inú podobu: ++a$. Tento zápis je rýchlejší, pričom sa jedná o špecifickú vlastnosť jazyka PHP, takže v iných jazykoch to neskúšajte. Keď sa rozhodnete zvyšovať nejakú premennú, určite jej predtým štartovaciu hodnotu. Prvotné navýšenie bude rýchlejšie.
     
  • V absolútnej väčšine prípadov je najrýchlejší cyklus do-while. Cyklus for je oproti nemu pomalší o 20%.

    do {
      // telo cyklu
    } while ($a > 0);


Hráme sa s premennými:

  • Neukladajte do premenných všetko čo Vás napadne.

    $premenna = 'Toto je nejaký klasický text';
    echo $premenna;

    Načo to robiť v dvoch krokoch, keď sa to dá v jednom?
    echo 'Toto je nejaký klasický text';
     
  • V prípade, že sa použitiu premennej neviete vyhnúť, ale neskôr ju nevyužijete, použite unset() Vďaka tomu uvoľníte zabranú pamäť, čo ocení Váš server najmä pri veľkých poliach.
     
  • Vždy, keď sa to dá, používajte str_replace() namiesto ereg_replace() a preg_replace(). Spracovanie str_replace() je za určitých podmienok viac ako o polovicu rýchlejšie!
     
  • Ak potrebujete rozdeliť reťazec v premennej použite funkciu explode() namiesto split().
     
  • Keď pracujete s polom, tak používajte pri určovaní člena jednoduché úvodzovky ' ' namiesto žiadnych. Príklad môžete vidieť vyššie.
     

Čo sa inam nevošlo:

  • Ak chcete zistiť aktuálny čas v Unix podobe, používajte funkciu time() namiesto date('U').
     
  • Ak je to možné, v podmienkach používajte radšej === (Identické) namiesto == (rovné).
     
  • Keď chcete pripojiť ďalší php súbor, rozhodne nepoužívajte require_once(). Zároveň používajte celé cesty, čím skrátite čas potrebný na rozlišovanie ciest.
     
  • Potlačovanie chýb pomocou znaku @ výrazne spomaľuje spracovanie celého skriptu.
     
  • Ukončujte svoje sql spojenia, ak ich už nepoužívate
     
  • Ak to nie je potrebné, nepoužívajte PHP skripty. Statické stránky sa spracúvajú niekedy až 10x rýchlejšie ako dynamické.
     
  • Nepoužívajte na všetko OOP, objekty a triedy obsadzujú veľa pamäťových prostriedkov.
     
  • Aktivujte Apache modul mod_gzip, ak je na Vašom serveri dostupný.
     
  • Použitím jednoduchého príkazu ob_start('ob_gzhandler'); na začiatku Vášho skriptu, môžete ušetriť až 80% prenesených dát.

 
A takto by sme mohli pokračovať ešte veľmi dlho. Tieto tipy a triky sú použiteľné vo väčšine, ak nie vo všetkých prípadoch. Mnohé z nich možno na prvý pohľad nebudú mať žiadny efekt, ale treba si uvedomiť, že každá ušetrená milisekunda je dobrá.
 

Rada na záver

Ak ste sa už rozhodli optimalizovať, určite si vždy zmerajte čas potrebný na vykonanie skriptu, ako aj jeho jednotlivých častí. Postupným skúšaním rôznych metód a zápisov môžete objaviť, že vo Vašom prípade niektorá funkcia pracuje rýchlejšie ako štandardne. Nebojte sa experimentovať.

V prípade, že Vás zaujímajú ďalšie (rozširujúce) informácie ohľadom optimalizácie PHP, určite si pozrite odkazy nižšie.
 

Ďalšie zaujímavé informácie:

Za inšpiráciu ďakujeme Tiborovi Sovišovi

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami Oznamy
21. 10. 2026

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami

Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...

Čítať viac
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás? Oznamy
01. 10. 2026

Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?

Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...

Čítať viac
Večerná „prestávka“ pre server VIP033 Oznamy
25. 09. 2026

Večerná „prestávka“ pre server VIP033

Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...

Čítať viac
Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Férová
cena

Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies