Я реализовал создание структуры данных узлов.Каждый узел может получить свой дочерний узел или родительский узел.
Я попытался протестировать структуру данных на своем веб-сервере и обнаружил, что ее производительность ужасна.
ниже приведен пример кода.
class Node
{
public $next = null;
public $parent = null;
public function __construct($name)
{
$this->name = $name;
}
public function __destruct()
{
static $i = 0;
print_r(++$i.':'.$this->name.' '.date('H:i:s')."\n");
$this->next = null;
$this->parent = null;
}
};
$root = new Node('root');
$curNode = $root;
$count = 10;
while (--$count) {
$curNode->next = new Node('node'.$count);
$curNode->next->parent = $curNode;
$curNode = $curNode->next;
}
print_r("end\n");
return;
Я запустил его через веб-сервер и получил следующий результат:
end
1:root 17:32:46
2:node9 17:32:46
3:node8 17:32:46
4:node7 17:32:46
5:node6 17:32:47
6:node5 17:32:47
7:node4 17:32:47
8:node3 17:32:47
9:node2 17:32:47
10:node1 17:32:48
Потребовалось почти 2 секунды, чтобы уничтожить десять узлов.Я не могу выяснить причину.Я выполнил тот же код через cli, и он немедленно завершился.
Мой хост работает под управлением Apache / 2.4.29 и использует PHP 7.3.6.Как я могу это исправить?Спасибо.