Прошу вас, профессионалов PHP, рассказать о личном опыте оптимизации PHP скриптов. Как лучше и удобнее находить узкие места в коде по процессорному времени или памяти? (какие профилировщики использовать, если они реально помогают?) Как определить, почему PHP приложение или фреймворк отрабатывает за 5 секунд, скажем, вместо 0.2? Если запрос к БД медленный, как разобраться почему и исправить? Хотелось бы получить совет, например, какие конструкции, циклы, функции рационально использовать, а какие будут замедлять приложение. На что обращать внимание при поиске плохого, читай медленного кода?
я не профессионал, но из распространёных ошибок: вызов sql в цикле, надо переделывать, при возможности, например получить полный запрос в массив, а потом пробегать циклом по массиву. Для диагностики sql запросов -- строятся и смотрятся "планы запросов", способ их построения зависит от БД, профилировщики, есно спасают жизнь, но если лениво разбираться -- можно просто печатать время и метку перед и после предполагаемого проблемного участка...
Для начала надо узнать что именно даёт максимум тормозов. То есть надо профилировать . Есть два главных тормоза обычно: обращение к внешним сервисам и запрос к базе. Первое надо подумать так ли оно тебе нужно, а если нужно то нельзя ли выполнять отложенного через очередь заданий. Второе - оптимизировать. На этот счёт много инфы в инетах, повторять не вижу смысла. Ну и конечно надо понимать матчасть. Т.к. пхп работает по принципу сделал и умер, очень важно чтобы инициализация приложения (бутстраппинг) не тормозил черезчур. Кеш и выкидывание ненужного рулят.