Portál AbcLinuxu, 4. listopadu 2025 09:53
            
Prvy test - bitova rotace
echo 8 >> 2
2
Branch analysis from position: 0
Return found
filename:       Command line code
function name:  (null)
number of ops:  4
compiled vars:  none
line     #  op                           fetch          ext  return  operands
-------------------------------------------------------------------------------
   1     0  SR                                               ~0      8, 2
         1  ECHO                                                     ~0
         2  RETURN                                                   null
         3* ZEND_HANDLE_EXCEPTION                                    
Druhy test - deleni
echo 8 / 4
2
Branch analysis from position: 0
Return found
filename:       Command line code
function name:  (null)
number of ops:  4
compiled vars:  none
line     #  op                           fetch          ext  return  operands
-------------------------------------------------------------------------------
   1     0  DIV                                              ~0      8, 4
         1  ECHO                                                     ~0
         2  RETURN                                                   null
         3* ZEND_HANDLE_EXCEPTION                                    
Pokud by optimalizace byla bezpredmetna, PHP by v prvem pripade nepouzilo shift right, ale div a pokud by si to kompilator umel domyslet, v druhem pripade by byl SR (Shift Right) a ne DIV, takze laskave prestante sirit bludy, pane __dark__
            
Treti test - modulus
echo 7 % 2
1
Branch analysis from position: 0
Return found
filename:       Command line code
function name:  (null)
number of ops:  4
compiled vars:  none
line     #  op                           fetch          ext  return  operands
-------------------------------------------------------------------------------
   1     0  MOD                                              ~0      7, 2
         1  ECHO                                                     ~0
         2  RETURN                                                   null
         3* ZEND_HANDLE_EXCEPTION                                    
Ctvrty test - and
echo 7 & 1
1
Branch analysis from position: 0
Return found
filename:       Command line code
function name:  (null)
number of ops:  4
compiled vars:  none
line     #  op                           fetch          ext  return  operands
-------------------------------------------------------------------------------
   1     0  BW_AND                                           ~0      7, 1
         1  ECHO                                                     ~0
         2  RETURN                                                   null
         3* ZEND_HANDLE_EXCEPTION                                    
            A protože jsi to nepsal, tak jedna promarněná instrukce na 0.00005 ms je vedle zbytečného SQL dotazu na 10 ms opravdu bezpředmětná je. Takovouto optimalizací snižuješ čitelnost kódu, takže tím plýtváš čas programátora, který je nesrovnatelně dražší než dva takty procesoru 3× za sekundu. Souhlasím s tím, že kód by se měl být slušně napsaný a efektivní, ale všeho s mírou. Občas je prostě lepší zvolit postup, který není úplně nejefektivnější, ale je čitelnější a lépe udržovatelný.Aha, takže mi chcete říct, že stráky, které potřebují desítky SQL dotazů pro zobrazení zachrání nějaké & 1 místo % 2 ?Nic takoveho jsem nikde nepsal, pouze uvadim, ze tato optimalizace neni bezpredmetna.
Ještě k těm překladačům C jazyka:
unsigned int a; a /= 8;Toto si překladač zcela jistě upraví na bitovou operaci.
int some_func(int x) {
    int y;
    ...
    x /= y;
    ...
    return x;
}
Ve vašem případě je to logické, protože překladač nezná Y, ale pokud bude Y konstanta, dobrý překladač udělá co je v jeho silách, aby se vyhl případnému dělení, násobení, atd :)
Takovéto věci se mi vypláci například u počítačové grafiky, jenže tento obor asi nelze srovnat s výpisem tabulky v PHP 
            
.
Zpět k tématu: Základem úspěchu při optimalizaci je vědět, kdy je to potřeba je a kdy není. Kdykoliv jsem měl někdy potíže s výkonem, tak to nikdy nebylo kvůli takovýmto detailům, ale kvůli nadměrné složitosti algoritmu. Ať už kvůli zapomenutému strlen() nebo kvůli tomu, že jsem vzal co bylo poruce a soustředil se na důležitější části.
Napsat '&' místo '%' size je jen jeden znak, ale jakmile chci změnit '2' za '3', tak už to je trošku pracnější...
A co se týče rychlosti samotných instrukcí, záleží i na instrukcích předcházejících, a následujících, na konkrétním typu procesoru, na optimalizacích, které provádí, jak se mu zrovna povedou a dalších věcech, takže ta ztráta nakonec nemusí být tak velká, jak píšeš.
            Ocekaval jsem, ze navstivis google.cz a napises tam "freez", asi jsem ocekaval prilis.Přišlo mi zbytečné prolistovávat se katalogem mrazáků
Pri detekci zda je cislo sude ci liche neexistuje zadne "jakmile chci zmenit 2 za 3...", v ostatnich pripadech plati pravidlo neprve vse promyslet, pote zvolit optimalni algoritmus, nikoliv upravovat a upravovat, dokud to nebude vypadat, ze to nejak funguje.Tohle nevysvětluj mě, ale zákazníkům.
Diskutuje se zde specificky o x86 a x86_64, pricemz tam je v tomto pripade vzdy rychlejsi logicka operace a nezalezi na poradi instrukci.PHP funguje i na jiných architekturách. Proč se omezovat zrovna na tu, co máš na stole ty? ps: Tvůj blog jsem našel.
...Ze ja s nekym takovym vubec ztracim cas. Ten omozenec to proste nedokaze pochopit.
            Pokud jsi někdy viděl zákazníka, který ví co chce a nemění požadavky častěji než ponožky, celkem ti závidím. Jinak prostě nezbývá, než psát tak, aby se to dalo lehce upravovat i za cenu, že to nebude nejoptimálnější.Tohle nevysvětluj mě, ale zákazníkům.To bys mel vedet ty, ne zakaznik.
Už sme si spomenuli metódu, ktorá nám posiela dáta do view pochádzajúce z našich modelov. Správne tušíte, že sa jedná o metódu set() a pochopenie jej práce je pre ďalšie časti kľúčové.Podstatna je informacia, ze metoda set() je pre dlasie pokracovanie klucova. Nie je potreba spominat, ze sme si ju o 10 riadkov vyssie popisaly (vyznam by to malo, keby sa o danej metode pisalo v starsom clanku). Podobne "navraty" sa vo vasich clankoch objavuju viackrat. Neviem mozno ste platey za pocet slov ale takto zbytocne znizujete kvalitu svojho clanku, ktory je o zaujimavej teme. Prosim neberte si moju krityku zle. Snazim sa Vam ukazat, kde robite najvecsie (okate) chyby, aby boli Vase clanky kvalitnejsie. Mozno by sa hodilo, keby niekto zo starsich a skusenejsich prispievatelov obcas presiel clanky inych autorov a zkrityzoval ich (Alebo vytvorit bokom nieaku stranku, ktora by obsahovala veci, ktorym sa pri tvorbe technickeho clanku vyhnut??) PS :: Nie som novinar ani spisovatel a tak je mozne, ze sa mylim. Len sa pokusam zdoraznit vecy v textu ktore ma vyrusuju od citania.
mozno ste platey za pocet slovsi prosim vas odpuste, je to trapne. Ja rad privitam namety a pripomienky, takze sa budem snazit z vasich pripomienok poucit. A na abclinuxu je predsa email konferencia, kde si mozes precitat clanky este pred vydanim a napisat k nim svoje pripomienky.
Pripomienky typu mozno ste platey za pocet slov si prosim vas odpuste, je to trapne.Ospravedlnujem sa. nemyslel som to v zlom.
A na abclinuxu je predsa email konferencia, kde si mozes precitat clanky este pred vydanim a napisat k nim svoje pripomienky.To je sice pravda, ale tato konference je pouze pro aktivní autory.
Neviem mozno ste platey za pocet slovDélka sice roli hraje, ale kvalita samozřejmě také.
        Tiskni
            
                Sdílej:
                
                
                
                
                
                
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.