Magento1: Профайлер

magento profiler

В Magento есть выстроенный “профайлер”(Profiler) который помогает делать отладку PHP-кода, отладку Magento кода.

Включить “профайлер” можно через админ панель System -> Configuration -> Developer

Вкладка Debug и ставим в значение “yes“.

Теперь можем зайти на сайт и посмотреть, внизу под “футером” будут сообщения “профайлера” Magento, сколько памяти использовано.

Magento профайлер

Но при отладке Magento, мало знать сколько памяти использовано 🙂

Расширим функциональность “профайлера” Magento

Откроем файл index.php,
найдем #Varien_Profiler::enable() и раскоментируем (уберем #)

Varien_Profiler::enable()

Снова откроем сайт на Magento, теперь в “профайлере” Magento больше информации. Можно посмотреть сколько времени (в секундах) требуется для обработки скриптов в Magento, теперь есть что анализировать.

Magento профайлер

Покажем в “профайлере” и SQL-запросы Magento к базе данных

Открываем файл app/code/core/Mage/Core/Model/Resource.php
Находим функцию getConnection(),
в коде функции находим приблизительно на 110 строке

$connection = $this->_newConnection((string)$connConfig->type, $connConfig);

И ниже вставим:

$connection->getProfiler()->setEnabled(true);

Должно получится примерно вот так:

$connection = $this->_newConnection((string)$connConfig->type, $connConfig);
$connection->getProfiler()->setEnabled(true);

Теперь перезагрузим страницу сайта и увидим количество SQL-запросов Magento к базе данных, и сколько времени заняли SQL-запросы Magento.

Magento профайлер

Медленные SQL-запросы Magento к базе данных

Открываем файл lib/Varien/Profiler.php \Varien_Profiler::getSqlProfiler
находим функцию getSqlProfiler().

Изменим функцию, заменим код на следующий пример

Теперь в “профайлере” Magento будут показываться все SQL-запросов Magento к базе данных которые делает Magento при создании страницы.

Magento профайлер

Функциональность “профайлера” Magento улучшена 🙂

Обратите внимание, функции getConnection() и getSqlProfiler() в разных версиях Magento могут отличатся.
Примеры php-кода для Magento Commerce Community 1.6.
Отладку с “профайлером” Magento лучше делать только на “девелоперских” серверах или локально, чтобы избежать не корректной работы “живых” сайтов.

Взято с http://inchoo.net/ecommerce/magento/magento-debugging/extending-default-magento-profiler/