За последние 24 часа нас посетили 17557 программистов и 1608 роботов. Сейчас ищут 916 программистов ...

Как вы оптимизируете медленные скрипты?

Тема в разделе "Прочие вопросы по PHP", создана пользователем IvanRsn, 6 сен 2018.

  1. IvanRsn

    IvanRsn Новичок

    С нами с:
    4 июн 2017
    Сообщения:
    5
    Симпатии:
    0
    Прошу вас, профессионалов PHP, рассказать о личном опыте оптимизации PHP скриптов.

    Как лучше и удобнее находить узкие места в коде по процессорному времени или памяти?
    (какие профилировщики использовать, если они реально помогают?)

    Как определить, почему PHP приложение или фреймворк отрабатывает за 5 секунд, скажем,
    вместо 0.2?

    Если запрос к БД медленный, как разобраться почему и исправить?

    Хотелось бы получить совет, например, какие конструкции, циклы, функции рационально использовать, а какие будут замедлять приложение. На что обращать внимание при поиске плохого, читай медленного кода?
     
  2. NewUse

    NewUse Новичок

    С нами с:
    14 июл 2018
    Сообщения:
    46
    Симпатии:
    0
    я не профессионал, но из распространёных ошибок: вызов sql в цикле, надо переделывать, при возможности, например получить полный запрос в массив, а потом пробегать циклом по массиву.
    Для диагностики sql запросов -- строятся и смотрятся "планы запросов", способ их построения зависит от БД, профилировщики, есно спасают жизнь, но если лениво разбираться -- можно просто печатать время и метку перед и после предполагаемого проблемного участка...
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    Для начала надо узнать что именно даёт максимум тормозов. То есть надо профилировать . Есть два главных тормоза обычно: обращение к внешним сервисам и запрос к базе.
    Первое надо подумать так ли оно тебе нужно, а если нужно то нельзя ли выполнять отложенного через очередь заданий.
    Второе - оптимизировать. На этот счёт много инфы в инетах, повторять не вижу смысла.
    Ну и конечно надо понимать матчасть. Т.к. пхп работает по принципу сделал и умер, очень важно чтобы инициализация приложения (бутстраппинг) не тормозил черезчур. Кеш и выкидывание ненужного рулят.