leechael.orgHome

加快建立 object 实例的小技巧(續)

新的測試代碼:

class foo
{
static public $WAKEUP_STR = 'O:3:"foo":0:{}';
public function foo(){}
public function bar(){}
}

$foo = new foo();
unset($foo);

include 'Benchmark/Timer.php';
$Timer = new Benchmark_Timer();

$a = array();
$b = array();
$Timer->start();
for ($i = 0; $i < 100000; $i++)
{
$a[] = new foo();
}
$Timer->setMarker('Commonly');
for ($i = 0; $i < 100000; $i++)
{
$b[] = unserialize(foo::$WAKEUP_STR);
}
$Timer->setMarker('Unserialize');
$Timer->stop();
$Timer->display();

感謝 Peter Fu 的提醒,或許這個測試更為靠譜,unserialize() 的方法還是不靠譜的。 XD