В WordPress, WP_Query
Класс может быть вызван с определенными аргументами для извлечения сообщений (данных) из вашей базы данных. К сожалению, сам объект большой, и если он получает 300-400 сообщений, он становится беспокойным довольно быстро, потому что, предположим, вы храните это WP_Query
и его недавно найденные посты в массиве, он становится довольно большим, я вижу, что он потребляет ~ 30-40 Мб моей памяти на локальном хосте, который уже является мощной машиной, поэтому я решил протестировать на своей серверной машине, немного меньшее использование памяти, так как он работает под управлением Linux, но все тот же.
Теперь представьте, что у меня 800 сообщений. Это очень, очень реальная и часто встречающаяся возможность, черт возьми, я видел много сайтов клиентов с большим количеством постов.
Очевидно, что мой сценарий превысит, во-первых, время выполнения на плохом хосте и, во-вторых, если он когда-либо здесь достигнет, исчерпание памяти.
Я вроде знаю, как решить эту проблему, и добился очень хорошего успеха, но я полностью ослеп, просто глядя на различия между потреблением памяти в диспетчере задач.
Нет ли инструментов, которые отображают потребление памяти определенного скрипта вместе со временем его выполнения? XDEBUG показывает только время выполнения.
Чтобы посмотреть в целом, если у меня есть доступ через SSH или что-то, я обычно использую top
команда (для коробок linux). Здесь приведен список всех видов команд, связанных с проверкой памяти:
https://www.cyberciti.biz/faq/linux-check-memory-usage/
Еще одна вещь, которую я использовал, это плагин: https://wordpress.org/plugins/wp-server-stats/
Тем не менее, он только скажет вам, сколько оперативной памяти доступно / используется. Это недостаточно детально, чтобы сказать вам, какой скрипт использует память.
И, наконец, один из моих любимых плагинов для диагностики проблем с запросами:
https://wordpress.org/plugins/query-monitor/
Дайте мне знать, если они не предоставляют достаточно конкретных деталей, и мы можем углубиться в это 🙂
Других решений пока нет …