xdebug – это расширение для PHP, написанное одним из разработчиков языка PHP - Derick Rethans.
Первым делом нам необходимо установить xdebug. В качестве сервера будет выступать популярный Denwer.
Решение причин, по которым вы можете не увидеть данную надпись:
Теперь к практике. Протестируем производительность Open Real Estate.
Прежде отключим кеширование.
В панели администратора, в секции "Настройки", выставьте "Время кеширования объектов и сложных объектов" в значения "0".
Затем откройте файл protected\config\db.php и ключу schemaCachingDuration задайте значение 0.
Запустим сайт, после загрузки откроем скаченную программу WinCacheGrind и выберем в папке D:\logs\ записанный лог:
сразу можно сказать, что на отображение страницы было потрачено примерно 1,9 секунды.
Кликая по названиям методов можно найти какая функция выполняется дольше всех и прооптимизировать её.
Либо включить кеширование, которое существует в продукте.
Откройте снова файл protected\config\db.php и задайте ключу schemaCachingDuration значение 3600 (включаем кеш схемы базы данных на 1 час):
И в админке, в секции "Настройки" для значений "Время кеширования объектов и сложных объектов" также поставьте значения 3600:
После этого два раза обновите сайт. Почему два? Потому что в первый раз объекты закешируются, а во второй раз уже будут отдаваться из кеша:
Как видим время уменьшилось почти на полсекунды и это с демо-контентом, а когда у вас на сайте будет больше объявлений, новостей и т.п, то и выигрыш во времени будет значительнее.
После установки xdebug также изменяется вывод ошибок, нотисов т.п:
Можно увидеть не только в каком файле не объявлена/существует переменная, но и время выполнения и объём используемой памяти при каждом действии.
Так как в php.ini у нас объявлено
xdebug.show_local_vars=1
то можно также увидеть значение всех переменных на странице:
А для отображения всех значений REQUEST, которые были переданы в скрипт, используйте:
xdebug.dump.REQUEST =*
или только GET - xdebug.dump.GET=*
Вы также можете вывести значения других суперглобальных переменных GET, POST, SERVER, COOKIE, FILES, REQUEST или SESSION.
И напоследок один маленький совет: крайне нежелательно устанавливать xdebug на работающие сервера, так как производительность от него пострадает.