WebMan

WebMan

В данный период я не оказываю услуг и не занимаюсь сторонними разработками
+434
Репутация
6108
Рейтинг
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 лет назад
Спасибо.
Посмотрите, пожалуйста, в "Админке - Компоненты" работают ли настройки компонентов для любого из них. У меня на локалке во всех тестах настройки открываются нормально, а на хостинге вместо страницы настроек только текст "Компоненты: Название_компонента" и дальше белый лист. Хочу понять, это с хостингом что-то, криво там стало или есть реальная ошибка.
+3
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
На самом деле движок InstantCMS 2 очень классный, продуманный, толковый. И при таких богатых возможностях он в оригинальной сборке работает, как минимум, не медленнее других известных систем. Я вообще не представляю, как r2 придумал и сделал всё это практически в одиночку. Большое ему уважение и спасибо! v

Но нет предела совершенству. smile Я просто добавил несколько проверок, чтобы не повторялись некоторые уже выполненые операции. И скорость стала вообще супер. По моим прикидкам, если изменить ещё несколько стуктурных моментов, то можно выиграть ещё процентов 20 или чуть больше. Но это уже будет не небольшой хак, а серьёзное изменение некоторых принципов ядра, требующее очень чёткого понимания как там всё работает и связано. У меня такого понимания нет. А r2 сейчас работает над другими, более важными для всех вопросами. Так что и этого хака оптимизации для реальных сайтов пока хватит с головой, на мой взгляд. На этом же хостинге у меня работает простой самописный чисто php-шный сайт без CMS со временем создания страниц 30-100 мс. А тут такая навороченная CMS выдаёт гостям главную с виджетами за 100 мс или чуть более. Это круто!
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Временно добавил демо-сайт. Вход смотрите внизу топика. Сайт только для гостей, регистрации нет. Просто как пример выводимой информации. Очень наглядно видно что за чем происходит и вызывается.

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

З.Ы. Хостер только что что-то делал на сервере, теперь php иногда притормаживает. Если время генерации страницы получилось слишком большое (больше 200 мс), обновите её.
+2
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Скачайте и почитайте описание, eoleg. А ещё лучше - поставьте на локалку и погоняйте. Там всё есть, в том числе и время каждого запроса. Да и вообще, время считается для всего, что выводится в лог.
Медленные запросы выделяются цветом фона так

Через css можно изменить оформление на желаемое.
+1
WebMan WebMan Класс расширенной отладки для InstantCMS 2.1.0-2.1.1 (v.7) + оптимизация скорости 10 лет назад
Так как информация об отладке выводится под готовой страницей (ещё точнее - ниже тегов </body> и </html>), то отладка будет работать с любым шаблоном. Всё, что нужно будет сделать для добавления настроек в Админку и включения цветового оформления - скопировать в новый шаблон файлы \templates\default\controllers\admin\settings_debug.tpl.php и \templates\default\css\debug.css. А в \templates\default\admin.tpl.php и \templates\default\main.tpl.php добавить подключение debug.css как это сделано сейчас в дефолтной теме:
main.tpl.php:
Код PHP:
  1. <?php if (DEBUG_ON) { $this->addMainCSS("templates/{$this->name}/css/debug.css"); } ?>
admin.tpl.php:
Код PHP:
  1. <?php $this->addMainCSS("templates/{$this->name}/css/debug.css"); ?>
0
WebMan WebMan Обновление InstantCMS 2.0.1 10 лет назад
Для Сергей по ссылкам без вложенности. Есть решение от Val через маленький хак ядра. На форуме в теме "Страницы в корне сайта на ICMS2" смотрите второй, исправленный вариант. Там весь контент типа 'pages' можно вызывать из корня, без указания типа контента в адресе.
Может r2 в следующей ветке учтёт эту потребность пользователей и добавит в настройки сайта возможность указать какой тип контента считать "корневым". Или сделает ещё более удобный способ.
0
WebMan WebMan Хак: Оптимизация инклудов в InstantCMS 2.0.1 (v.1) 10 лет назад
Трудно что-то сказать вслепую.
Попробуйте Класс расширенной отладки из этой ссылки. Во-первых, там уже есть все мои оптимизации на данный момент. Во-вторых, там есть отладка, которая может быть Вам полезна как для оценки скорости сайта, так и для других целей.
0
WebMan WebMan Хак: Оптимизация инклудов в InstantCMS 2.0.1 (v.1) 10 лет назад
У меня на нескольких тестовых локальных сайтах слайдер на месте и работает. И до Вас пока ни у кого такой ошибки не было. Давайте выясним.

Оптимизацию Вы делали накатом файлов из архива или ручками по списку изменений? У Вас до оптимизации уже были изменены какие-то из перечисленных в топике файлов? Или другие файлы были изменены - какие?
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.0.1 (v.6) - UPD 2014.07.05 18:15 10 лет назад
С интересом прочитал про Вашу "Систему патчей". На мой взгляд, идея хорошая, реально будет восстребована пользователями.
Я готов предоставить файлы патчей оптимизаций и отладки как только будет как-то устаканен их формат с учётом всего запланированного функционала "Системы".
Завтра постараюсь посмотреть Вашу систему в работе и отписаться об увиденном.
+1
WebMan WebMan Класс расширенной отладки для InstantCMS 2.0.1 (v.6) - UPD 2014.07.05 18:15 10 лет назад
Класс отладки бесплатен для всех пользователей Инстанта. Можете использовать его в своих целях как захотите.

С компонентами класс отладки никак не пересекается. И по всем правилам, компоненты не должны менять файлы ядра, они пишутся в свои отдельные папки. Так что наши с Вами файлы пересекаться не должны. (Список изменённых файлов для отладки смотрите в топике)
Либо поясните в личке, что имеете ввиду.
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.0.1 (v.6) - UPD 2014.07.05 18:15 10 лет назад
Подробное описание двух оптимизаций есть в моём блоге.
Отдельно файлы отладки без оптимизации я уже выкладывать не буду, только с ней. Вы можете сравнить файлы из этого поста с изменениями для оптимизации из моих прошлых постов и вернуть всё как было в оригинальных файлах. Но зачем Вам более медленный движок?
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.0.1 (v.6) - UPD 2014.07.05 18:15 10 лет назад
Давайте дождёмся ответов разработчиков. Тогда будет видно куда идти и если нужно будет, тогда я подумаю про Гитхаб. Может и не придётся ничего никуда отдельно выкладывать, всё будет встроено в движок.
0
WebMan WebMan Класс расширенной отладки для InstantCMS 2.0.1 (v.6) - UPD 2014.07.05 18:15 10 лет назад
Зачем на Github? Чем и кому удобнее?
1. Это не отдельный модуль, а серьёзный, комплексный хак системы. Он глубоко встраивается в ядро. Какой смысл публиковать его отдельно от темы Инстанта?
2. В этом блоге информация о нём сразу видна заинтересованным пользователям, не нужно ничего искать на стороннем сайте. Тут же есть и все исходники, я ничего не скрываю.
3. Выкладывать на Github список всех изменений, которые делаются в ядре, да ещё и для каждой версии - лишняя работа. Никто им пользоваться не будет, все предпочтут иметь отладку в официальных сборках или, в крайнем случае, будут ждать готовое решение от меня для очередного обновления Инстанта.
А вот включат ли разработчики эти возможности в официальную версию - зависит от их видения CMS и от ваших пожеланий.
0
WebMan WebMan SEO для разделов каталога 10 лет назад
Можно и вместе, и по отдельности. Только номера строк с точкой уберите.
0
WebMan WebMan SEO для разделов каталога 10 лет назад
Вы имеете ввиду "как выполнить SQL-запрос"?

Если дома на своём компьютере, то скачайте phpMyAdmin, распакуйте его в отдельную подпапку в папке с сайтом и зайдите в него (наберите в браузере локальный адрес своего сайта, добавив к нему название папки с phpMyAdmin через косую черту). В нём выберите базу данных своего сайта. На вкладке "SQL" вставьте из буфера скопированный текст запроса и нажмите "Выполнить"

Если на рабочем хостинге, то обычно phpMyAdmin устанавливать самостоятельно не нужно, он уже присутствует на всех хостингах с MySQL. Попасть в него можно чаще всего через "Панель управления" хостингом. Или уточните у поддержки.
+2
WebMan WebMan Хак: Оптимизация загрузки классов кэша в InstantCMS 2.0.1 10 лет назад
Ещё предложение по поводу кэша исходя из темы про манифесты. Было бы разумно сделать более тонкие настройки кеширования: что именно и насколько кэшировать. Например, сделать галки "Разрешить кэширование ... (событий, виджетов и т.д.)" с полем для указания периода кеширования для каждого пункта. Тогда, например, можно спокойно включить кеширование списка хуков из манифестов на 24 часа и сократить загрузки файлов почти на 30 штук, оставив без кеширования виджеты и другие динамические вещи, которые должны собираться в реальном времени.
+1
WebMan WebMan Хак: Оптимизация загрузки классов кэша в InstantCMS 2.0.1 10 лет назад
Если в настройках кэш отключён, то никакие операции с кэшем не производятся. Это видно в \system\core\cache.php:
Код PHP:
  1. public function get($key){
  2. if (!cmsConfig::get('cache_enabled')) { return false; }
  3. ...
  4. }
  5. public function set($key, $value, $ttl=false){
  6. $config = cmsConfig::getInstance();
  7. if (!$config->cache_enabled) { return false; }
  8. ...
  9. }
И так далее. Во всех функциях класса кэша, везде проверки на разрешение его работы. Поэтому в getAllListeners() класс кэша вызывается, но реально ничего не делает, если в настройках разрешения нет. Если кэш запрещён, то в любом случае перечитываются все манифесты и собирается список евентов. Значит можно смело вынести проверку в getAllListeners() и вообще не вызывать (и даже не загружать) два класса кэша. Что я и сделал в этом хаке.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.