Владимир М.
327 сообщений
#14 лет назад
Добрый день.

Жил был сайт и постепенно на него навешивали всё больше функций. Часть кода постепенно оказывалась бессмысленной, но тем не менее выполнялась. Каждая функция кушала свой кусочек памяти и занимала процессорное время вне зависимости от того, нужна она или уже давно не используется. Наступил логический конец - всё тормозит. Теперь эту кучу надо как-то разгрести. Есть вариант правильный - перечитать весь код, убрать лишнее, возможно оптимизировать структуру данных и т.п. Но кода много. Хотелось бы какой-нибудь инструмент для анализа что и насколько нагружает сайт, чтобы исправлять сразу наиболее тяжёлые места (на уровне "запрос такой-то в файле таком-то вызван ХХ раз за месяц, а вот переменная YY ни разу не использовалась" ). Вопрос - есть ли такой инструмент?
Ещё есть вариант поставить eAccelerator или что-то подобное - на какое-то время видимо поможет. Но это тоже "костыль".
Евгений Б.
5330 сообщений
#14 лет назад
Есть тесты, есть профайлинг кода.
В конечном итоге все тесты будут являться поводом для рефакторинга кода.
Я бы начал с написания тестов, что бы в процессе не вырезать "пациенту" лишнее
Владимир М.
327 сообщений
#14 лет назад
Работает верно, но медленно.
Тесты т.е. везде и всюду добавить в код вывод затрат времени/памяти и его уже анализировать?
Роман Беляев
16382 сообщения
#14 лет назад
Цитата ("intelleks"):
Вопрос - есть ли такой инструмент?

Ну так чтобы совсем автоматически, да и на живом сайте я бы не стал экспериментировать. А так ArtPro верно говорит - пройтись профайлером, проанализировать запросы.

Цитата ("intelleks"):
Ещё есть вариант поставить eAccelerator или что-то подобное - на какое-то время видимо поможет. Но это тоже "костыль".


Это не костыль а очень даже полезная штука. Независимо от того что там в коде.

Вообще может так получиться, что весь этот разбор и оптимизация окажутся сопоставимы или даже дороже перестройки всего с нуля.
Владимир М.
327 сообщений
#14 лет назад
Цитата ("frig"):
Это не костыль а очень даже полезная штука. Независимо от того что там в коде.
Признаю, поторопился Но в данном случае разработка ведётся по принципу "лишь бы быстрей заработало" т.ч. даже чудесный eAccelerator спасёт ситуацию не надолго.

Цитата:
Вообще может так получиться, что весь этот разбор и оптимизация окажутся сопоставимы или даже дороже перестройки всего с нуля.
Наверняка. Предлагал, но клиент на такое не готов пойти. Увы.

Пойду смотреть профайлеры.
Роман Беляев
16382 сообщения
#14 лет назад
Цитата ("intelleks"):
Предлагал, но клиент на такое не готов пойти. Увы.


Видать думает, что править будет дешевле гг
Роман Ч.
762 сообщения
#14 лет назад
Цитата ("intelleks"):
Предлагал, но клиент на такое не готов пойти. Увы.


а можно еще клиенту предложить перейти с шаред хостинга на vps достаточной мощности или на дедик.
Больше ресурсов = меньше тормозов.
А в процессе поддержки и т.д. - можно как раз потихоньку оптимизировать код, тем более, что скорее всего тенденции к обрастанию модулями, информацией и т.д. - есть.

З.Ы. еще бы неплохо логи посмотреть, что там пишется... часто влогах сервера при выполнении скриптов отображаются не только ошибки, но и разные таймауты и т.д.
Николай М.
1895 сообщений
#14 лет назад
Все зависит как сделан сайт, если делан на какомто фреймворке с MVC-архитектурой, то обычно есть масса средств в самом фреймворке для профайлинга, разгребать что ктото наваял - удовольствие не из дешевых и быстрых, иногда дешевле и быстрее переписать все с нуля
Владимир М.
327 сообщений
#14 лет назад
Он уже на VPS.
О фреймворках там даже близко речи нет На основе самописного интернет-магазина создан информационный каталог, на который навешивались функции без всякого плана по мере возникновения идей "а не привлечёт ли это клиентов?" Уже некоторое время удивляюсь, что оно до сих пор работает.

Что странно, в общем-то работает сносно, время генерации страниц 0,1-7 секунд. Но вот в момент создания темы резко томозил. Страницы 15-30 секунд создавал, а кому то и вовсе 504 Timeout возвращал. Объяснить это нашествием поисковиков разве что...
Роман Ч.
762 сообщения
#14 лет назад
Цитата ("intelleks"):
Он уже на VPS.


увеличите характеристики vps )