Ukladanie inych instancii v objekte rubrika: Programování: PHP
Caute,
chcem sa opytat jednu "technicku" vec, ktorej nerozumiem..
Preco trva vytvorenie novej instancie a jej ulozenie cca 6x dlhsie:
public $routes; public function addRoute () { return $this->routes[] = new Route(); }
ako ked ju ulozim do statickej property:
public static $routes; public function addRoute () { return self::$routes[] = new Route(); }
v com presne to spociva, ked je casovy rozdiel tak obrovsky.. (1 milion iteracii / 1800ms vs 300ms)
PHP 7.2.10 , Widle 10 64bit..
PHP nema JIT kdyz pouzijes $this->routes tak PHP musi nejprve pres $this-> najit adresu objektu nasledne v danem objektu najde adresu kde je ulozeno pole routes a pak teprve ukladas do daneho pole.
U statickeho volani tam spousta teto rezie odpada protoze dane pole je v pameti pouze jedno muze PHP tento kus kodu zahodit a pristoupit rovnou na adresu daneho pole coz je performance boost.
Nicmene bych se neridil tim jak moc je to rychle ale tim jak je to spravne a staticke promene vetsinou spravne nejsou
Pro zobrazení všech 2 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře