Я достигаю максимального уровня вложенности функций (полный список в конце вопроса). Я понимаю, что решение этого вопроса - xdebug.max_nesting_level
, но каковы его последствия? Кроме того, как я могу лучше реализовать свой код.
Я пишу IRC-клиент, который сейчас много себя называет.
стек вызовов (в сложенном виде)
# | Time | Memory | Function | Location
1 | 0.0010 | 800152 | {main}( ) | ..\index.php:0
2 | 0.0010 | 802416 | IRCBot->__construc | ..\index.php:225
3 | 0.1104 | 804368 | IRCBot->cont( ) | ..\index.php:34
4 | 0.1945 | 814592 | IRCBot->cont( ) | ..\index.php:144
......|................|...............|.......................|.....................
96 | 113.8191 | 1121560 | IRCBot->cont( ) | ..\index.php:144
97 | 114.0116 | 1126928 | IRCBot->cont( ) | ..\index.php:144
98 | 114.2020 | 1132384 | out( ) | ..\index.php:105
99 | 114.2020 | 1132384 | flush2( ) | ..\index.php:14
Я знаю, что могу решить эту проблему, увеличив max_nesting_level
, но что тогда произойдет, когда уровень вложенности достигнет нового максимума? Кроме того, это способ, которым я делаю это плохо для памяти и т. Д.
function cont($config) {
$data = fgets($this->socket, 256);
$this->cont($config);
}
Вопросы:
Будет ли увеличение max_nesting_level
увеличивать нагрузку на мой сервер?
Есть ли способ реинжиниринга этого кода, чтобы избежать этой проблемы?
Разве плохо запускать такие PHP-скрипты при установке CGI?