Autor | Zpráva | ||
---|---|---|---|
Lukkk Profil * |
#1 · Zasláno: 18. 2. 2008, 20:22:17
Ahoj zajímal jsem se o optimalizaci PHP kódu, zrychlení apod.
Našel jsem velice zajímavý článek 40 Tips for optimizing your php code Je v tom pres 40 tipů optimalizace PHP zdrojového kódu, s PHP teprve začínám a chci získat ty nejlepší programátorské návyky. A protoze zacinam tak si chci upresnit nektere veci ohledne tech tipů, jestli jsem je správně pochopil. 3.) Use echo's multiple parameters instead of string concatenation. Znamená to tedy že je lepší použít třeba. echo "<p>Promena a = $a</p>; misto echo "<p>Promena a = ".$a."</p>; 7.) require_once() is expensive kdyz chci vložit soubor s údaji o databázi používam require_once, pokud jsem to správně pochopil tak je dobré používat require_once 8.) Use full paths in includes and requires, less time spent on resolving the OS paths. Používat absolutní cestu. require_once("http://www.example.com/config.php"); 13.) It's better to use select statements than multi if, else if, statements. Tím myslí, že je lepší používat case, pro proměnné které nabývyjí více hodnot? 14.) Error suppression with @ is very slow. Ošetřování výpisu errorů, nejlépe nastavit, třeba přes htacess, pro celou stránku, když už máme třeba vytvořený vlastní redakční systém a víme, že v něm nejsou chyby. 16.) Close your database connections when you're done with them Používat mysql_free_result, a mysql_close 17.) $row[’id’] is 7 times faster than $row[id] používat $row["id"] $row['id'] $row[’id’] |
||
djlj Profil |
#2 · Zasláno: 18. 2. 2008, 20:37:58
8. /nejakaslozka/nejakadalsislozka/tvujweb/config.php
14. error_reporting(0); 16. mysql_close; mysql_free_result bych použil jen u skriptů zabírajících hodně paměti 17. $row['id'] |
||
Lukkk Profil * |
#3 · Zasláno: 18. 2. 2008, 21:16:28
djlj
8.) aha chapu ./ 14.) ok 16.) ale pouzit to muzu vsude a neni to zpomaleni ne? 17.) muzi pouzit vsechny tri co jsem zminil $row["id"] $row['id'] $row[’id’] protoze vsechny tri vyjdou na stejno a jsou rychlejsi nez $row[id] |
||
Mastodont Profil |
#4 · Zasláno: 18. 2. 2008, 21:26:32
7 jsi pochopil špatně, protože "expensive" = nákladný
A na některé z těch rad bacha, ono to není vždy tak jednoznačné a to poměřování rychlostí vychází často v jednom testu tak a jinde onak. |
||
Lukkk Profil * |
#5 · Zasláno: 18. 2. 2008, 21:34:41
Mastodont
ok takze require A tu trojku jsem pochopil spravne? 3.) Use echo's multiple parameters instead of string concatenation. Znamená to tedy že je lepší použít třeba. echo "<p>Promena a = $a</p>; misto echo "<p>Promena a = ".$a."</p>; Je jasne ze kdyz treba budu chtit pouzit nejakou funkci tak to bez spojovani retezcu nepujde echo "<p>Promena a = ".ceil($a)."</p>; |
||
tiso Profil |
#6 · Zasláno: 18. 2. 2008, 22:27:39
3.) http://www.php.net/manual/en/function.echo.php
echo ("<p>Promena a = ", $a, "</p>"); 7.) lepšie je menej vkladaných súborov ako viac, a include je rýchlejšie ako require_once |
||
DJ Miky Profil |
#7 · Zasláno: 18. 2. 2008, 22:45:29
Pokud jde o každou mikrosekundu, tak by se hodily apostrofy místo uvozovek:
echo ('<p>Promena a = ', $a, '</p>'); |
||
ninja Profil |
#8 · Zasláno: 18. 2. 2008, 22:46:15
Me ty radi prijdou hodne hnidopiske. Mozna ze skutecne usetri par tisicin sekundy, ale zabyval bych se tim az pote co mam optimalizovanou logiku aplikace a dotazy na SQL. Nebo se investovat cas radeji do cacheovani vystupu. Tam je IMHO daleko lepsi pomer cena/vykon.
|
||
Mastodont Profil |
#9 · Zasláno: 18. 2. 2008, 23:36:09
No pochopitelně.
|
||
djlj Profil |
#10 · Zasláno: 18. 2. 2008, 23:54:19
16.) ale pouzit to muzu vsude a neni to zpomaleni ne?
http://cz2.php.net/manual/cs/function.mysql-free-result.php mysql_free_result() je vhodné používat pouze v případě, kdy vám záleží na tom, jak moc paměti je v průběhu skriptu použíto pro vykonaný dotaz a když výsledek dotazu je příliš velký. Všechna paměť obsazená výsledky spojení bude jinak automaticky ulovněna až s koncem běhu skriptu. |
||
Časová prodleva: 16 let
|
0