WebMan

WebMan

В данный период я не оказываю услуг и не занимаюсь сторонними разработками
+434
Репутация
6110
Рейтинг
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.2 (v.8) + оптимизация скорости 10 лет назад
Пожалуйста!
В Вашем случае проблема, скорее всего, не в 3G, а в каких-то тормозах на сервере. Посмотрите в итоговой таблице, что именно занимает много времени. Сравните это с приведённой в посте таблицей и с таблицей дома на локалке. Можете посмотреть подробнее нужную информацию, включив вывод в лог запросов или инклудов. И уже после этого появится возможность общаться с поддержкой хостинга об устранении узких мест на сервере. Возможно тормоза были из-за файловой системы или из-за слабого/загруженного проца.
+2
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.2 (v.8) + оптимизация скорости 10 лет назад
Посмотрите предыдущие посты в моём блоге. Там выложены правки кода для нескольких самых важных оптимизаций для InstantCMS 2.0. Они подходят и для версии 2.1.2, только могли измениться номера строк в обновлённых файлах.
Начиная с версии Инстанта 2.0.1 в блоге публикую отладку совместно с оптимизазией. Отдельно делать и выкладывать оптимизацию не предполагаю.
+1
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Такую же проблему несколько раз наблюдал на чистой 2.1.1 (без отладки и любых других модификаций). Иногда список полей виден, иногда - нет. В том числе у уже существующего типа контента. С чем связано - не знаю.

В варианте с отладкой сейчас наблюдаю следующую картину: если отладка выключена - поля в списке полей чаще не видны (хотя и создаются), при включении отладки все поля появляются в списке как обычно. Поэтому в своём проекте пока просто включил отладку и создаю всё, что мне нужно.

Сейчас просто физически не получается выяснить этот баг и предыдущий (см. выше) - я всё время вне дома и ещё неделю две буду в разъездах.
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Баг подтверждаю. Он действительно проявляется только при включённой отладке и только в этом месте админки. При отключённой отладке он не проявляется. Так что можно спокойно использовать отладку и оптимизацию из этой темы на реальных проектах. А я доберусь до домашнего компа через недельку и постараюсь его исправить.
+1
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Если проверять на админа, тогда если разрешён показ отладочной информации для всех пользователей, то для гостей и обычных пользователей файл оформления подгружаться не будет - это неправильно.

Если хочется оптимизировать и этот участок кода, то можно загружать css в основном шаблоне main.tpl.php только если разрешён вывод отладочной инфы:
Код PHP:
  1. <?php if (DEBUG_ON && cmsDebug::getInstance()->allowShow()) { $this->addMainCSS("templates/{$this->name}/css/debug.css"); } ?>
В шаблоне админпанели admin.tpl.php загружать стили нужно всегда. Они используются и при отладке, и при выводе текущих параметров отладки в Настройках.

Кстати, нужно будет в новой версии переименовать в классе отладки функцию allowShow() в isAllowShow() - так правильнее по канонам ООП.
+2
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Сделал такое же размещение блоков и на демо-сайте.
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
debug time и full time и так самые нижние среди параметров со временем в колонке "Скрипт".. Ниже них только время лагов и количество точек отладки. На демо-сайте просто отключены лаги и нет точек отладки, поэтому строки с ними не выводятся.

Количество строк с инклудами в отдельной таблице зависит от настроек. Можно выводить весь список подключаемых файлов - десятки или больше сотни. А можно выводить только ошибочные или повторяющиеся инклуды - тогда строк станет мало, так как ошибок мало, а повторения я исключил оптимизацией.
Поставьте себе на локалку и поиграйтесь с настройками. Или скачайте описание настроек - там всё описано.
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Если желающие выскажутся - учту их мнение. Если нет, оставлю так.

Параметр debug находится в колонке Memory, так как показывает использование памяти классом отладки. Переносить в "Память" параметры, относящиеся ко времени не вижу смысла. Делать отдельную колонку для всех параметров класса отладки - слишком удлиннит таблицу без особой на то необходимости. Пока пусть остаётся как есть.
+1
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
А куда разместить "виджеты" и "события/хуки"? Ведь в их время тоже включаются и все инклуды, и все запросы к БД, сделанные во время обработки виджетов/хуков.
Если следовать Вашей логике, то их тоже нужно переместить в первую колонку "Скрипт" и считать процент времени от времени скрипта.
Сделал на локалке такое перемещение. В колонке "Скрипт" отображаются все допустимые строки. Но чаще всего последних двух строк (лаги и точки отладки) не бывает. Так подходит? Если да, то так и будет в следующей версии.:
+1
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Видимо так и сделаю в следующей версии. Спасибо!
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Всё, понял. Цифры на скрине правильные. Время контроллера и рендеринга страницы считается полное, включая запросы к БД, а не только ПХП. Чтобы можно было оценить суммарную работу того или иного контроллера или шаблона. Это полезно при добавлении новых компонентов или шаблонов, при хаках, при обновлении и подобном.

В данном примере во время работы контроллера были тормоза при запросах к БД от котроллера или его частей. Соответственно, время этих запросов тоже входит в общее время контроллера.
Если Вы увидите аналогичную картину ещё раз, просто посмотрите запросы к БД в логе ниже этой таблицы, выделенные жёлтым фоном - так выделяются медленные запросы (оформление можно изменить через css). Как раз они и тормозили работу контроллера. Всё очень наглядно.
0
WebMan WebMan Обновление InstantCMS 2.1.1 10 лет назад
У меня есть только ограниченная в доступе демо InstantCMS 2.1.1, которая делалась для тестирования моей отладки и оптимизации. Сайт только для гостей, регистрация и вход в админку запрещены. Под страницами дополнительно выводится масса информации о времени выполнения скриптов и о происходящем в системе. Если подходит - смотрите.
Ссылка закрыта от поисковиков обычной авторизацией.
Имя: tester
Пароль: tester
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Теперь понятно. Вы подтвердили что выигрыш по скорости более, чем в два раза. Спасибо.
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Спасибо за инфу. Только уточните, какое именно кэширование Вы тестировали. Может Вы имели ввиду "без оптимизации" и "с оптимизацией"?
+1
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Вчера на старом сервере без кэширования файлов и БД создавало гостям главную с виджетами за 100 мс или чуть более.
Сейчас на новом более мощном сервере с кэшированием файлов и БД то же самое создаёт - от 70 мс. И при этом вообще отсутствуют вчерашние тормоза по несколько секунд. Так что кэш, конечно, играет свою роль. Но основной выигрыш - за счёт исключения повторяющихся уже выполненых операций и другой оптимизации.

Вы можете поставить на свой локальный комп чистую официальную версию, добавить в неё пару строк кода для замера времени (код чуть ниже) и после замера и записывания времени всех интересующих страниц накатить поверх этот патч. И собственноручно сравнить скорость. У Вас получится таблица, сходная с моей таблицей в топике. Кстати, будет интересно сравнить время на разных компах. Выложите сюда свои результаты, если не трудно.

Для замера времени в оригинальной версии нужно добавить строки в файл index.php в корне сайта:

в самом начале файла, перед всеми строками

Код PHP:
  1. $debug_start = microtime(TRUE);
и в самом конце, после всех строк

Код PHP:
  1. echo "Full time: ".round((microtime(TRUE) - $debug_start)*1000, 1)." ms";
После этого можно обновить страницу и внизу под страницей будет написано время её создания.
В версии с расширенной отладкой это и многое другое сразу отображается в таблице отладки.
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Демо-сайт переехал на новый сервер. Смотрите и наслаждайтесь Двойкой: время создания главной страницы - 70 мс, "О проекте" - 46 мс. Красота!!! dance
🍪Мы используем файлы cookie для работы сайта. Читать подробнее.