
WebMan
В данный период я не оказываю услуг и не занимаюсь сторонними разработками
+434
Репутация
6110
Рейтинг
В Вашем случае проблема, скорее всего, не в 3G, а в каких-то тормозах на сервере. Посмотрите в итоговой таблице, что именно занимает много времени. Сравните это с приведённой в посте таблицей и с таблицей дома на локалке. Можете посмотреть подробнее нужную информацию, включив вывод в лог запросов или инклудов. И уже после этого появится возможность общаться с поддержкой хостинга об устранении узких мест на сервере. Возможно тормоза были из-за файловой системы или из-за слабого/загруженного проца.
Начиная с версии Инстанта 2.0.1 в блоге публикую отладку совместно с оптимизазией. Отдельно делать и выкладывать оптимизацию не предполагаю.
В варианте с отладкой сейчас наблюдаю следующую картину: если отладка выключена - поля в списке полей чаще не видны (хотя и создаются), при включении отладки все поля появляются в списке как обычно. Поэтому в своём проекте пока просто включил отладку и создаю всё, что мне нужно.
Сейчас просто физически не получается выяснить этот баг и предыдущий (см. выше) - я всё время вне дома и ещё неделю две буду в разъездах.
Если хочется оптимизировать и этот участок кода, то можно загружать css в основном шаблоне main.tpl.php только если разрешён вывод отладочной инфы:
Кстати, нужно будет в новой версии переименовать в классе отладки функцию allowShow() в isAllowShow() - так правильнее по канонам ООП.
Количество строк с инклудами в отдельной таблице зависит от настроек. Можно выводить весь список подключаемых файлов - десятки или больше сотни. А можно выводить только ошибочные или повторяющиеся инклуды - тогда строк станет мало, так как ошибок мало, а повторения я исключил оптимизацией.
Поставьте себе на локалку и поиграйтесь с настройками. Или скачайте описание настроек - там всё описано.
Параметр debug находится в колонке Memory, так как показывает использование памяти классом отладки. Переносить в "Память" параметры, относящиеся ко времени не вижу смысла. Делать отдельную колонку для всех параметров класса отладки - слишком удлиннит таблицу без особой на то необходимости. Пока пусть остаётся как есть.
Если следовать Вашей логике, то их тоже нужно переместить в первую колонку "Скрипт" и считать процент времени от времени скрипта.
Сделал на локалке такое перемещение. В колонке "Скрипт" отображаются все допустимые строки. Но чаще всего последних двух строк (лаги и точки отладки) не бывает. Так подходит? Если да, то так и будет в следующей версии.:
В данном примере во время работы контроллера были тормоза при запросах к БД от котроллера или его частей. Соответственно, время этих запросов тоже входит в общее время контроллера.
Если Вы увидите аналогичную картину ещё раз, просто посмотрите запросы к БД в логе ниже этой таблицы, выделенные жёлтым фоном - так выделяются медленные запросы (оформление можно изменить через css). Как раз они и тормозили работу контроллера. Всё очень наглядно.
Ссылка закрыта от поисковиков обычной авторизацией.
Имя: tester
Пароль: tester
Сейчас на новом более мощном сервере с кэшированием файлов и БД то же самое создаёт - от 70 мс. И при этом вообще отсутствуют вчерашние тормоза по несколько секунд. Так что кэш, конечно, играет свою роль. Но основной выигрыш - за счёт исключения повторяющихся уже выполненых операций и другой оптимизации.
Вы можете поставить на свой локальный комп чистую официальную версию, добавить в неё пару строк кода для замера времени (код чуть ниже) и после замера и записывания времени всех интересующих страниц накатить поверх этот патч. И собственноручно сравнить скорость. У Вас получится таблица, сходная с моей таблицей в топике. Кстати, будет интересно сравнить время на разных компах. Выложите сюда свои результаты, если не трудно.
Для замера времени в оригинальной версии нужно добавить строки в файл index.php в корне сайта:
в самом начале файла, перед всеми строками
В версии с расширенной отладкой это и многое другое сразу отображается в таблице отладки.