Обновление класса расширенной отладки и оптимизации для InstantCMS 2.3.0.
Мощный, но лёгкий класс расширенной отладки для InstantCMS 2. Позволяет легко, наглядно и управляемо получить информацию о времени выполнения, используемой памяти и других параметрах php-скриптов CMS и их частей.
Данный патч будет полезен всем. Разработчики компонентов смогут быстрее и нагляднее понять работу системы, проще отладить свои компоненты и темы, а в случае проблем с компонентами смогут получить от клиентов дополнительную отладочную информацию. Пользователи CMS получат инструмент для выявления причин тормозов и других проблем при размещении сайтов на реальных серверах.
Подробнее смотрите в моём блоге ранее и в документации, которую можно скачать по ссылкам ниже.
Изменения в этой версии:
------------------
• Совместимость с InstantCMS 2.3.0.
* Более точно учитывается время отладки виджетов, хуков, контроллера, шаблона
+ Вернул в отладку перехват и вывод сообщений о предупреждениях в SQL-запросах. Для этого перенёс получение mysqli->insert_id в cmsDatabase->query().
+ Добавлена коррекция точности PHP для гарантированного учёта десятых долей микросекунд.
+ Добавлен подсчёт времени старта PHP-модуля (от момента получения сервером запроса до выполнения первой строки кода). Может быть полезно для выявления медленно загружающегося модуля PHP.
* Информация по хукам, виджетам, контроллеру и шаблону в основной таблице вынесена в отдельный блок "Parts of script".
+ Добавлен подсчёт и вывод в суммарную таблицу объёма использованной памяти хуками, виджетами, контроллером и шаблоном.
+ Добавлен подсчёт и вывод в лог количества и времени sql-запросов, количества и времени инклудов и объёма использованой памяти для каждого хука и виджета.
+ Теперь в суммарной таблице жирным шрифтом выделяются операции, по которым включен вывод подробной информации.
+ Изменённые мной участки кода в оригинальных файлах движка для наглядности выделил примечаниями "<WebMan>".
* Сделаны мелкие косметические правки.
Разработчики Инстанта оптимизировали версию 2.3.0. Движок стал работать в два раза быстрее. Так что как я не старался, в этот раз сильного ускорения уже не получилось. Что, на самом деле, радует. Команда Инстанта – молодцы!
Что у меня получилось: ускорение 15-30% на фронтенде и до 60% в админке.
Суммарные изменения в оригинальном InstantCMS 2.3.0:
Файлы класса отладки (добавленные к оригинальной InstantCMS 2.3.0):
Скачать класс отладки можно в Каталоге
Установка производится стандартным способом Инстанта – пункт «Установить пакет дополнения» в Админке и указанием zip-архива из Каталога.
Либо можно просто распаковать содержимое папки package из архива с заменой файлов в папку с уже установленной системой.
Это версия только для InstantCMS 2.3.0, для более ранних не подходит.
В конфиге по-умолчанию отладка уже включена (смотрите новый раздел "Отладка" в "Настройках" админки). Если отладочная информация на сайте не показывается, убедитесь, что вы зашли под админом или выключите параметр «Показывать отладочную информацию только администраторам».
Также можете скачать и почитать обновлённые описание и инструкцию:
Полное описание возможностей класса отладки (html-файл в архиве)
Подробное описание выводимых значений, настроек отладки в админке и использования точек отладки (html-файл в архиве)
Некоторые особенности учёта времени и памяти в этом классе для интересующихся:
Теперь, начиная с версии Инстант 2.3.0, при включении отладки показывается также и время создания страницы. Это очень удобно. Но не всегда хватает.
В расширенной отладке некоторые значения отличаются от значений стандартной отладки:
1. Время выполнения скрипта показывается чуть точнее. Во-первых, учёт времени начинается с самого момента старта системы, а не после выполнения некоторых команд и загрузки bootstrap.php. Во-вторых, фиксация окончания скрипта происходит реально после выполнения всех действий скрипта, а не почти в конце. В-третьих, выводится и учитывается в полном времени и время загрузки PHP-модуля Апача. Разница в показаниях стандартной отладки и расширенной может составлять около 1-3%. Для большинства случаев это не критично. Но иногда знать точные цифры нужно.
2. Объём используемой памяти скрипта в стандартной отладке показывается на момент окончания работы скрипта. Точнее, на момент чуть раньше окончания. В расширенной отладке основное отображаемое значение памяти – это пиковое (максимальное) за всё время работы скрипта. Так как во время работы часто бывают ситуации, когда память сначала выделяется, а потом очищается и забирается из использования. Поэтому судить о потреблении памяти лучше по пиковому значению — это позволит точнее планировать требуемую память при покупке хостинга.
Кроме того, нужно учитывать, что память выделяется сервером поблочно. В расширенной отладке можно включить блочный расчёт показателей памяти, что ещё точнее покажет реальное использование памяти системой. Кроме пикового, в расширенной отладке отображаются также начальное и конечное значения памяти.
Мощный, но лёгкий класс расширенной отладки для InstantCMS 2. Позволяет легко, наглядно и управляемо получить информацию о времени выполнения, используемой памяти и других параметрах php-скриптов CMS и их частей.
Данный патч будет полезен всем. Разработчики компонентов смогут быстрее и нагляднее понять работу системы, проще отладить свои компоненты и темы, а в случае проблем с компонентами смогут получить от клиентов дополнительную отладочную информацию. Пользователи CMS получат инструмент для выявления причин тормозов и других проблем при размещении сайтов на реальных серверах.
Подробнее смотрите в моём блоге ранее и в документации, которую можно скачать по ссылкам ниже.
Изменения в этой версии:
------------------
• Совместимость с InstantCMS 2.3.0.
* Более точно учитывается время отладки виджетов, хуков, контроллера, шаблона
+ Вернул в отладку перехват и вывод сообщений о предупреждениях в SQL-запросах. Для этого перенёс получение mysqli->insert_id в cmsDatabase->query().
+ Добавлена коррекция точности PHP для гарантированного учёта десятых долей микросекунд.
+ Добавлен подсчёт времени старта PHP-модуля (от момента получения сервером запроса до выполнения первой строки кода). Может быть полезно для выявления медленно загружающегося модуля PHP.
* Информация по хукам, виджетам, контроллеру и шаблону в основной таблице вынесена в отдельный блок "Parts of script".
+ Добавлен подсчёт и вывод в суммарную таблицу объёма использованной памяти хуками, виджетами, контроллером и шаблоном.
+ Добавлен подсчёт и вывод в лог количества и времени sql-запросов, количества и времени инклудов и объёма использованой памяти для каждого хука и виджета.
+ Теперь в суммарной таблице жирным шрифтом выделяются операции, по которым включен вывод подробной информации.
+ Изменённые мной участки кода в оригинальных файлах движка для наглядности выделил примечаниями "<WebMan>".
* Сделаны мелкие косметические правки.
Разработчики Инстанта оптимизировали версию 2.3.0. Движок стал работать в два раза быстрее. Так что как я не старался, в этот раз сильного ускорения уже не получилось. Что, на самом деле, радует. Команда Инстанта – молодцы!
Что у меня получилось: ускорение 15-30% на фронтенде и до 60% в админке.
Суммарные изменения в оригинальном InstantCMS 2.3.0:
\index.php
\bootstrap.php
\system\config\autoload.php
\system\controllers\admin\frontend.php
\system\controllers\admin\actions\settings.php
\system\controllers\content\widgets\list\options.form.php
\system\core\cache.php
\system\core\controller.php
\system\core\core.php
\system\core\database.php
\system\core\eventsmanager.php
\system\core\form.php
\system\core\model.php
\system\core\template.php
\templates\default\admin.tpl.php
\templates\default\main.tpl.php
Если вы уже изменяли для себя какие-то из этих файлов, то сделайте сравнение моих версий с вашими файлами и внесите изменения в свои файлы вручную.
\bootstrap.php
\system\config\autoload.php
\system\controllers\admin\frontend.php
\system\controllers\admin\actions\settings.php
\system\controllers\content\widgets\list\options.form.php
\system\core\cache.php
\system\core\controller.php
\system\core\core.php
\system\core\database.php
\system\core\eventsmanager.php
\system\core\form.php
\system\core\model.php
\system\core\template.php
\templates\default\admin.tpl.php
\templates\default\main.tpl.php
Если вы уже изменяли для себя какие-то из этих файлов, то сделайте сравнение моих версий с вашими файлами и внесите изменения в свои файлы вручную.
\system\config\debug.php
\system\controllers\admin\actions\settings_debug.php
\system\controllers\admin\forms\form_debug.php
\system\core\debug.php
\system\core\debugconfig.php
\system\languages\en\debug.php
\system\languages\ru\debug.php
\templates\default\controllers\admin\settings_debug.tpl.php
\templates\default\css\debug.css
\system\controllers\admin\actions\settings_debug.php
\system\controllers\admin\forms\form_debug.php
\system\core\debug.php
\system\core\debugconfig.php
\system\languages\en\debug.php
\system\languages\ru\debug.php
\templates\default\controllers\admin\settings_debug.tpl.php
\templates\default\css\debug.css
Установка производится стандартным способом Инстанта – пункт «Установить пакет дополнения» в Админке и указанием zip-архива из Каталога.
Либо можно просто распаковать содержимое папки package из архива с заменой файлов в папку с уже установленной системой.
Это версия только для InstantCMS 2.3.0, для более ранних не подходит.
В конфиге по-умолчанию отладка уже включена (смотрите новый раздел "Отладка" в "Настройках" админки). Если отладочная информация на сайте не показывается, убедитесь, что вы зашли под админом или выключите параметр «Показывать отладочную информацию только администраторам».
Также можете скачать и почитать обновлённые описание и инструкцию:
Полное описание возможностей класса отладки (html-файл в архиве)
Подробное описание выводимых значений, настроек отладки в админке и использования точек отладки (html-файл в архиве)
Некоторые особенности учёта времени и памяти в этом классе для интересующихся:
Теперь, начиная с версии Инстант 2.3.0, при включении отладки показывается также и время создания страницы. Это очень удобно. Но не всегда хватает.
В расширенной отладке некоторые значения отличаются от значений стандартной отладки:
1. Время выполнения скрипта показывается чуть точнее. Во-первых, учёт времени начинается с самого момента старта системы, а не после выполнения некоторых команд и загрузки bootstrap.php. Во-вторых, фиксация окончания скрипта происходит реально после выполнения всех действий скрипта, а не почти в конце. В-третьих, выводится и учитывается в полном времени и время загрузки PHP-модуля Апача. Разница в показаниях стандартной отладки и расширенной может составлять около 1-3%. Для большинства случаев это не критично. Но иногда знать точные цифры нужно.
2. Объём используемой памяти скрипта в стандартной отладке показывается на момент окончания работы скрипта. Точнее, на момент чуть раньше окончания. В расширенной отладке основное отображаемое значение памяти – это пиковое (максимальное) за всё время работы скрипта. Так как во время работы часто бывают ситуации, когда память сначала выделяется, а потом очищается и забирается из использования. Поэтому судить о потреблении памяти лучше по пиковому значению — это позволит точнее планировать требуемую память при покупке хостинга.
Кроме того, нужно учитывать, что память выделяется сервером поблочно. В расширенной отладке можно включить блочный расчёт показателей памяти, что ещё точнее покажет реальное использование памяти системой. Кроме пикового, в расширенной отладке отображаются также начальное и конечное значения памяти.
Реклама #
Алексей Т 8 лет назад #
Loadырь 8 лет назад #
R161Net 8 лет назад #
Alexprofi 8 лет назад #
Антон 8 лет назад #
Это наверно больше вопрос разработчикам Инстанта...
WebMan 8 лет назад #
Антон 8 лет назад #
[Fri Dec 04 15:27:19 2015] [error] [client 92.ХХХ.ХХХ.ХХХ] PHP Notice: Uninitialized string offset: 0 in /var/www/ХХХ/templates/default/assets/ui/form.tpl.php on line 135, referer: http://ХХХ/projects
[Fri Dec 04 15:26:56 2015] [error] [client 92.ХХХ.ХХХ.ХХХ] PHP Notice: Undefined index: hook in /var/www/XXX/templates/default/assets/ui/form.tpl.php on line 135, referer: http://XXX/admin/settings/debug
WebMan 8 лет назад #
Если Вы игрались с настройками отладки в Админке, то попробуйте заметить, при каких настройках появляются такие ошибки и потом пришлите мне Ваш файл конфигурации \system\config\debug.php в личку. Я попробую воспроизвести эти ошибки у себя с Вашим конфигом.
Игорь ФИН 8 лет назад #
lezginka.ru 8 лет назад #
надо попробовать, как раз были с этим проблемы...
WebMan 8 лет назад #