Autor Zpráva
Casper
Profil
Dobrý den, někde jsem četl, že použití ternárního operátoru je o něco rychlejší než využití podmínky if. Oblíbil jsem si jej natolik, že ho cpu téměř všude. Ovšem nevím, zda tak scriptu skutečně pomáhám, zdali je skutečně rychlejší než použití klasického ifu. Natož když používám dva až tři vnořené ternární operátory. Neví někdo jak je to s rychlostí takovýchto podmínek? Nechci zbytečně zatěžovat script.
Předem díky za odpovědi...

Pro méně znalé: ternární operátor.
panther
Profil
Casper:
Neví někdo jak je to s rychlostí takovýchto podmínek?
je problém si to změřit na několikatisícerém opakování? Časy uvidíš, porovnat je snad zvládneš (i odečíst, jak moc velký rozdíl tam je).
Casper
Profil
To bych asi mohl :) Lenost je strašná věc, člověk se radši zeptá, než udělá... Pochopil jsem, jdu to napravit a hodím sem výsledek, aby to aspoň někomu k něčemu bylo ;)
Alphard
Profil
Casper:
Můžete to být pomalejší, ale řešit takovouto optimalizaci má smysl snad jen v rozsáhlých cyklech, hodně dlouhých proměnných a podobných extrémech. Běžně se myslím používá to, co je přehlednější.
Vzpomněl jsem si (a dokonce i našel) na starý článek http://latrine.dgx.cz/php-puvab-optimalizace-rychlosti (byl psán pro pro PHP 4, nevím jestli se něco změnilo, spíš ne).
Casper
Profil
Alphard Děkuji za odpověď, poučný článek.
I při mém testování desítimiliontého opakování desítinásobného vnoření podmínky byl ternární operátor cca o 1,5 sekundy pomalejší. Skript mu trval kolem osmi sekund.
kolemjdouci
Profil *
Prosel jsem ten odkaz a docela jsem nepochopil tu optimalizaci u prispevku c.3 (Davida Grundla). Proc je nepouziti reference rychlejsi?
tiso
Profil
kolemjdouci: pretože sa nevyužije… Priradenie premennej do inej nijak pôvodnú nevplyvní (ani nemôže), takže referencia je zbytočná.
DoubleThink
Profil *
Casper:
Na 99.9% nejsi v situaci, kdy bys musel přemýšlet nad rychlostí jazykových konstrukcí PHP. Jinými slovy, kvůli zisku setiny sekundy píšeš nepřehledné prasácké kódy.
kolemjdouci
Profil *
tiso:
Stejně nechápu. Mohl bys prosím polopatě?
Davex
Profil
kolemjdouci:
Viz http://latrine.dgx.cz/php-cerna-magie-optimalizace
kolemjdouci
Profil *
Díky. Jak php jádro naloží s tímto?
public function hodnota() {
	return $this->ulozenahodnota;
}

Provede se replikace hodnoty nebo se jen inkrementuje refcount?
Nox
Profil
však to máš v článku - http://php.net/debug_zval_dump použij a uvidíš
kolemjdouci
Profil *
Tak se jen inkrementuje. Zkoušel jsem to na pár funkcí co jsem porůznu našel přes google. Zkoušel jsem return bez reference a s referencí a chovalo se to stejně. Jaký má teda smysl tato konstrukce: public function &funkce(.... ?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0