Как понять результаты qcachegrind?

Я пытаюсь профилировать свое приложение php, но не могу понять показатели в qcachegrind. следующий скриншот:
введите описание изображения здесь

его вызовы функций, конечно. но что значит колонки вкл. а себя? Как я должен признать, что какой-то метод нуждается в рефакторинге?

1

Решение

«self» — это время выполнения функции БЕЗ каких-либо включений (и других вызовов функций) внутри нее, а «include» — это все время выполнения функции (включая файлы, функции и т. д.). Возьмите пример:

function a()
{
b();
c();
}

function b() { // some code }
function c()
{
d()
}
function d() { // some code }

Функция self time будет приблизительно равна нулю, но поскольку она вызывает b и c, время включения будет максимальным и содержит время для a, b и c. Аналогично, время включения и включения будет таким же, как если бы оно не вызывало какую-либо функцию. Принимая во внимание, что c self будет приблизительно равно 0 и будет включать время, приблизительно равное d, включая время.

Глядя на ваш qcachegrind, ваш код тратит много времени на вызовы PDO. Нечто связанное с запросом SQL. Вы также хотите захватить ваши запросы SQL и профилировать их, чтобы увидеть, как они работают.

Также интересно узнать, сколько раз вызывается функция. Функция может быть эффективной с точки зрения производительности, но если она вызывается слишком много раз, она сложится. Проверьте, если код делает слишком много запросов SQL.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]