Страница 2 из 2

Добавлено: 15.09.2020, 13:10
zyxer
Еще раз попробую пояснить на пальцах как работает стек вызова, хоть это и выходит за рамки данного форума.

Вот есть код

Код: Выделить всё

func1();

function func1()
{
    sleep(1);
    func2();
}

function func2()
{
    sleep(1);
    func3();
}

function func3()
{
    sleep(1);
}

В котором видно что каждая ф-ция работает ровно одну секунду и вызывает следующую. Вот так выглядит стек вызова этой ф-ции http://prntscr.com/uhnwg7.
Видно же что время отработки func2 и func3 прибавилось к времени отработки func1 даже на абсолютных значениях http://prntscr.com/uhnxg5. Но это вовсе не значит что func1 в данном случае является "тормозом" видно же что все три ф-ции работают ровно по одной секунде. Вот ссылка на Call Graph https://blackfire.io/profiles/9a61c26f-2edb-4b70-92b6-b8d8e5cd884f/graph.

Далее другой пример

Код: Выделить всё

funcN1();
function funcN1()
{
    sleep(1);
    funcN2();
}

function funcN2()
{
    sleep(1);
    funcN3();
}

function funcN3()
{
    sleep(2);
}
Здесь разница лишь в том, что funcN3 работает дольше чем func3 и видно что по прежнему время отработки funcN3 входит в вышестоящие методы. Вот ссылка на Call Graph funcN1 https://blackfire.io/profiles/f400494c-813f-4174-9888-d3f1f9fde184/graph (и на всякий случай скрин http://prntscr.com/uho6np)

Добавлено: 16.09.2020, 11:39
Vladzimir
Ок. Вы ухватились и зациклились на одной функции.
Но проблема в том, что даже опускаясь вниз по ней тормоза все равно пренадлежат роутингу.
Ладно. в \okay\core\router почему \bramus\router\router все равно съедает все время?
Почему не подключение к базе, в крайнем случае рендеринг, а именно роутинг?