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

Я создаю веб-страницу, которая запрашивает базу данных MySQL и (в настоящее время) создает текстовый список результатов. Запросы для заполнения одной записи похожи на:

  • фильм (название, описание и т. д.)
    • актеры в фильме (имя, пол)
    • похожие фильмы

Из любопытства использовал memory_get_peak_usage() и memory_get_usage():

start   110,440 bytes
peak    656,056 bytes
end 637,976 bytes
time    0.008 seconds

Вышеуказанные записи не найдены!

С 40 записями я достигаю примерно 2 МБ, хотя время остается прежним.

Я знаю, что преждевременная оптимизация - это зло и все такое, но я должен спросить:

Мне нужно переделать? Это нормальное использование памяти? Что считается чрезмерным?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
15
0
7 569
6

Ответы 6

В конечном итоге, конечно, предпочтительнее оптимизировать, когда это удобно, но использование 2 МБ памяти - это нормально. PHP4 имеет конфигурацию по умолчанию 8 МБ, а PHP5 16 МБ. Конечно, многие предварительно упакованные сборки PHP будут иметь разные конфигурации, но в целом, если вы можете сохранить свое приложение менее 8 МБ, вы можете быть уверены, что оно будет очень переносимым в этом отношении.

Очевидно, все зависит от сложности создаваемого приложения. В среднем страницы нашего приложения занимают до 20 МБ (мин) памяти. Это потому, что в сеансе много объектов и много процессов инициализации, которые происходят до того, как скрипт сможет даже сказать привет, мир (аутентификация, управление правами, уведомления, ...)

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

Я не знаю, влияет ли загрузка расширений на использование памяти - это должно быть что-то для тестирования, потому что по умолчанию нам могут не понадобиться все загруженные по умолчанию расширения?

Пока вы планируете хороший механизм кэширования (кэш опкодов, кеш объектов и т. д.), Использование памяти становится менее актуальным. Вы все еще намного ниже обычного использования памяти фреймворком php.

Лично я установил ограничение в 8 МБ. Если я превышаю это, я стараюсь улучшить свое приложение. Причина в том, что некоторые общие хосты и конфигурации PHP 4 имеют ограничение по умолчанию в 8 МБ на процесс.

PHP не освобождает память во время выполнения скрипта, поэтому ваш предел памяти должен быть равен максимальному объему памяти, потребляемому одним скриптом. Если максимум, который когда-либо потребляется скриптом, составляет 2 МБ, установите его на 2 МБ, но если вам нужно 780 МБ, установите его.

У нас есть большие производственные системы с ограничением памяти более 2 ГБ. Но это, очевидно, хорошо настроено для нас, и для нашего сценария я бы никогда не стал защищать это для сред общего хостинга.

PHP имеет известные ограничения ресурсов в зависимости от того, какую версию вы используете. Текущая версия может обрабатывать 128 МБ, PHP 5.2.0 = 16 МБ, а все предыдущие версии 8 МБ.

Другие вопросы по теме