Вы здесь: Ньюфы.инфо / Персоны / Соziдатель / Заметки разработчика / Оптимизация скорости работы сайта
Оптимизация скорости работы сайта
Тут личное, программёрское, не ругайтесь, если не понятно :-)
Подготовив новый раздел и, ожидая когда же мы его опубликуем, по инерции продолжил работать над Ньюфами.ру. Но на этот раз не реализуя новые или переделывая старые функции, а изучая и исправляя старые.
Есть скрипты, которые исполняются на всех страницах проекта. Для примера: чат, или меню. Там еще подключение к базе данных, чтение настроек и т.п.
Вот их-то я и решил проверить, нет ли там мусора, можно ли улучшить написаное, оптимизировать с эстетической и алгоритмической точки зрения.
Было удалено много неиспользуемых функций, улучшено кеширование практически всех элементов, и, главное, найдено узкое место!
Чтобы я не делал, как бы не оптимизировал, но страница на сервере создавалась большее, чем за 2 секунды время. А это очень долго. Очень-очень. Недопустимо долго.
Я смирялся с этим, думая, что сайт в целом слишком навороченый, и эти секунды складываются из многих мелких операций.
Оказалось, что не так.
Обнаружил, что скрипт, ответственный за отображение чата, был написан не оптимально. Так, как это подходило, когда сообщений в чате было 10-ки тысяч, но не сотни.
Именно невинное отображение последних 15 сообщений и занимало 2 секунды с лишним. После рефакторинга эта же операция занимает (внимание!) - 0,002 секунды!
Ура! Ура! Ура!
Подготовив новый раздел и, ожидая когда же мы его опубликуем, по инерции продолжил работать над Ньюфами.ру. Но на этот раз не реализуя новые или переделывая старые функции, а изучая и исправляя старые.
Есть скрипты, которые исполняются на всех страницах проекта. Для примера: чат, или меню. Там еще подключение к базе данных, чтение настроек и т.п.
Вот их-то я и решил проверить, нет ли там мусора, можно ли улучшить написаное, оптимизировать с эстетической и алгоритмической точки зрения.
Было удалено много неиспользуемых функций, улучшено кеширование практически всех элементов, и, главное, найдено узкое место!
Чтобы я не делал, как бы не оптимизировал, но страница на сервере создавалась большее, чем за 2 секунды время. А это очень долго. Очень-очень. Недопустимо долго.
Я смирялся с этим, думая, что сайт в целом слишком навороченый, и эти секунды складываются из многих мелких операций.
Оказалось, что не так.
Обнаружил, что скрипт, ответственный за отображение чата, был написан не оптимально. Так, как это подходило, когда сообщений в чате было 10-ки тысяч, но не сотни.
Именно невинное отображение последних 15 сообщений и занимало 2 секунды с лишним. После рефакторинга эта же операция занимает (внимание!) - 0,002 секунды!
Ура! Ура! Ура!
Комментарии
Все,что на пользу сайту-РАДУЕТ!!!
Женя-СПАСИБО!!!
Женя-СПАСИБО!!!
а вот лента сообщений открывается минуты по 4, а то и дольше... Это что? Навороченность форума или узкое место тоже когда-нибудь обнаружится?
Белк, ну не владею я телепатией :-(
Сколько говорить.
Я не знаю, какую именно ленту сообщений ты имеешь в виду.
Лента всех сообщений из всех дневников, лента дайджеста, лента всех сообщений из форума, лента сообщений в форуме определённого лица, лента топиков определённого лица, история чата и может быть еще и еще куча вещей, которые можно называть этим словосочетанием.
Если есть ошибка, надо описать всё, чтобы я тоже мог на неё напороться, или понять, как напарывается другой человек.
Как минимум, нужна ссылка.
Сколько говорить.
Я не знаю, какую именно ленту сообщений ты имеешь в виду.
Лента всех сообщений из всех дневников, лента дайджеста, лента всех сообщений из форума, лента сообщений в форуме определённого лица, лента топиков определённого лица, история чата и может быть еще и еще куча вещей, которые можно называть этим словосочетанием.
Если есть ошибка, надо описать всё, чтобы я тоже мог на неё напороться, или понять, как напарывается другой человек.
Как минимум, нужна ссылка.
Ты перечислил СТОЛЬКО лент..... я тоже не телепат, не знаю я ничего про них :) Я знаю одну - единственную, ту, которая под форумом. Которая "лента всех сообщений" форума.
Телепатом и не надо быть. Перечислил именно для примера непонятности. А вот ссылка, напротив, многие вопросы снимает.
Напиши ты "Соз, а вот тут лента http://newfs.ru/forum/message/all/?page=7546 грузится очень долго", я бы сразу понял про что идёт речь. Не тяжело же, ссылку скопировать и вставить.
По теме: да, там узкое горло той же природы, только так элегантно и просто, как с чатом не решается.
Но я там тоже в меру возможностей пока подправил.
У меня страница генерировалась 30 секунд, теперь меньше двух.
Информацию о времени создания страницы (сколько это времени заняло на сервере) можно увидеть внизу слева, под счетчиками.
Напиши ты "Соз, а вот тут лента http://newfs.ru/forum/message/all/?page=7546 грузится очень долго", я бы сразу понял про что идёт речь. Не тяжело же, ссылку скопировать и вставить.
По теме: да, там узкое горло той же природы, только так элегантно и просто, как с чатом не решается.
Но я там тоже в меру возможностей пока подправил.
У меня страница генерировалась 30 секунд, теперь меньше двух.
Информацию о времени создания страницы (сколько это времени заняло на сервере) можно увидеть внизу слева, под счетчиками.
можешь удалить мой коммент!
Наблюдать за новыми комметариями.