następująco :
Kod
Skrypt wykonany w czasie: 1.485986 sekundy (tradycyjnie wywołany obiekt)
Skrypt wykonany w czasie: 2.203427 sekundy(wg. singleton)
Skrypt wykonany w czasie: 2.203427 sekundy(wg. singleton)
Byc moze zle implementuje ten wzorzec w swojej aplikacji wiec podaje poniżej kod :
<?php class Test2 { public $licznik; { if ( self::$oInstance == false ) { self::$oInstance = new Test2( ); } return self::$oInstance; } public function mnozenie() { return $this->licznik*10; } } ?>
Klasę wywołuję wg singleton tym kodem:
<?php for($i=0; $i<80000; $i++) { $test =& Test2::getinstance ( ); $test->licznik=$test->licznik++; } ?>
A tak tworze obiekt klasy w tradycyjny sposób(wg. moich testów ten sposób jest szybszy)
<?php for($i=0; $i<80000; $i++) { $test = New Test2( ); $test->licznik=$test->licznik++; } ?>
Czy może mi ktoś wyjaśnić dlaczego kod wg singleton jest wykonywany wolniej i kiedy warto
w swoich aplikacjach implementować ten wzorzec ?
Z góry dzieki za pomoc.