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

Оптимизацию по расходу компонентом оперативной памяти удобно проводить с помощью PHP функций "memory_get_usage" и "memory_get_peak_usage". Важно определить максимальный объем оперативной памяти, которую может использовать компонент.

Допустим, если веб-проекту выделен максимальный объем памяти в 64МБ, то, очевидно, ни один компонент не должен расходовать больший объем памяти - иначе выполнение веб-страницы завершиться ошибкой и посетителю отобразится белый экран в лучшем случае, а в худшем - из-за ошибки завершится важный бизнес-процесс и, возможно, потеряется часть данных.

Распространены следующие ошибки, связанные с перерасходом памяти и процессорных мощностей:

К сожалению, иногда данные проблемы решаются путем выделения веб-проекту огромных размеров оперативной памяти - 512МБ и больше. Что, естественно, не только ухудшает стабильность и производительность веб-проекта, но и приводит к неэффективному использованию аппаратных возможностей сервера.

Рекомендуется, наоборот, уменьшать размер выделенной веб-проекту оперативной памяти до нахождения оптимального размера (рекомендованный размер оперативной памяти для платформы Bitrix Framework - не менее 64МБ).

  1. Необходимо убедиться, что при разработке собственных компонентов веб-проекта выполнены вышеперечисленные рекомендации.
  2. Необходимо совместно с системным администратором веб-проекта после проведения нагрузочного тестирования либо определенного периода эксплуатации (например, каждую неделю) - посмотреть лог ошибок PHP или веб-сервера на предмет наличия сообщений об ошибках, связанных с нехваткой веб-страницам оперативной памяти, найти причины и доработать компоненты. Постепенно все "проблемные" компоненты будут найдены и исправлены и веб-решение будет использовать небольшой фиксированный объем оперативной памяти. Это позволит выделить другому программному обеспечению: веб-сервер, база данных, файловый кеш операционной системы - больше места.