Pogledajte određenu poruku
Staro 15. 05. 2006.   #3
dinke
Super Moderator
Invented the damn thing
 
Avatar dinke
 
Datum učlanjenja: 06.06.2005
Poruke: 2.371
Hvala: 370
701 "Hvala" u 194 poruka
dinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamendinke je pravi dragi kamen
Default

Iskreno, ocekivao sam vise od jednog clanka o optimizaciji. Prvo, razocaran sam samom benchmark metodom (microtime vs. xdebug na primer). Drugo, autor teksta nije ni zagrebao temu optimizacije, a primeri su uglavnom lose izabrani.

Posto je ovo pro forum a moja malenkost moderator PHP foruma, evo sta je autor u gornjem clanku propustio.

1) "Premature optimization is the root of all evil." (Donald E. Knuth)
2) "When developing applications, the first stage should be to make design your top priority; we should sacrifice performance in favor of a well designed application architecture, and allow our code to be flexible and maintainable. In general, assuming you haven’t made any critical mistakes in your code, performance is really a hardware issue (i.e. you have the option to throw memory,faster processors etc. at the problem);" (Harry Fuecks)
3) "Fast programmers cost more than fast microprocessors!" (Harry Fuecks)

A sada evo i nekih tehnika:

- Most Probably First:
Kod koriscenja if-else uslova, u prvi if uvek treba stavljati uslov koji će se verovatnije izvršiti. Na primer ako imamo $foo_boolean za koji znamo da će prilikom izvršavanja scripta skoro sigurno biti true onda treba :

PHP kôd:
if($foo_boolean === true)
{
    
//do foo
}
else
{
   
//doo foo else

- For Loop
Kao što Bojan reče, unutar for i while petlji ne stavljati count već van njih. Dakle ne:

PHP kôd:
for($i=0$i<count($foo_array); $i++)
{
    
//do foo

već

PHP kôd:
$count count($foo_array);
for(
$i=0$i<$count$i++)
{
    
//do foo

- Lazy Inclusion
Već smo videli koliko "košta" jedan include praznog fajla. Zamislite tek include neke klase (ili više njih). U slučaju da nam to nije neophodno možemo koristiti tzv "Lazy Inclusion":

PHP kôd:
<?php
class LazyInclude 
{
    var 
$session;
    
    function 
LazyInclude()
    {
        
// Include the class as it's needed
        
require_once 'Session/Session.php';
        
$this->session = &new Session();
    }
}
$li = new LazyInclude();
?>
(primer preuzet iz php anthology 2)

- Use Single Quotes
Negde sam ovo pročitao, a negde i da je to jedna od urbanih legendi. Elem, po nekima, korišćenje jednostrukih navodnika je brže (što donekle ima smisla jer onda engine ne traži escape karaktere).

- Encode Script
Encodovan script (http://www.zend.com/products/zend_guard) radi oko 100% brže.
__________________
Caught in a Web|Blogodak
With great power comes great responsibility!
dinke je offline   Odgovorite uz citat