У меня есть 3 файла со следующим кодом:
Filename: TCObj.php
class TCObj {
protected $objects;
public function __construct(){
$this->objects = array();
}
public function register_service($service) {
if(!isset($this->objects[$service])) {
$this->objects[$service] = new $service;
}
return $this->objects[$service];
}
}
File Name: TObj.php
class TObj {
public function __construct(){
}
public function hello() {
echo "Hello!!!";
}
}test.php contains the following code:
require_once("TCObj.php");
require_once("TObj.php");
$start_time = microtime(true);
$o = new TCObj();
$p = $o->register_service("TObj");
$p->hello();
$end_time = microtime(true);
echo "<br />";
echo $end_time - $start_time;
Когда я выполнял приведенный выше код, это намного быстрее, чем я создавал объект напрямую, используя следующий код:
require_once("TObj.php");
$start_time = microtime(true);
$p = new TObj();
$p->hello();
$end_time = microtime(true);
echo "<br />";
echo $end_time - $start_time;
Разве это не должно быть наоборот? Или я проверяю неправильный способ анализа времени вычислений? Пожалуйста, не забывайте о моем английском, так как я не очень много говорящего 🙁
Я думал, что последний будет быстрее, но это было не так, когда тестировались как на сервере с 512 МБ ОЗУ и одноядерным (Linux), так и на локальной системе с 4 ГБ ОЗУ и 4 ядром (ями) (windows)
Что я делаю неправильно?
Задача ещё не решена.
Других решений пока нет …