Ошибка ограничения памяти PHP на «устаревшем» сайте Wordpress, но я значительно ниже ограничения памятиPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка ограничения памяти PHP на «устаревшем» сайте Wordpress, но я значительно ниже ограничения памяти

Сообщение Anonymous »

Я работаю над этим устаревшим сайтом Wordpress, просто пытаюсь обновить форматирование страницы, созданной с помощью какого-то незнакомого мне конструктора.
Я называю этот сайт " Heritage», потому что на нем установлена ​​какая-то устаревшая версия 4 версии плагина «WP Bakery / Visual Composer», которую следует обновить до версии 7. Но кто-то не хочет платить 75 долларов за безопасный сайт. Итак, насколько мне известно, ошибки отладки возникают из-за скрипучего старого PHP-кода, который устарел и находится на грани «исчезновения».
Поэтому я пишу PHP-страницу под другим именем. URL на данный момент, для тестирования, на Hostinger, я скопировал файлы сайта и базу данных и разместил сайт там.
Проблема:
На этом сайте у меня исчерпан лимит памяти, но мои проверки использования памяти показывают, что используется только 9–13 МБ памяти, а ограничение активной памяти на сайте составляет 512 МБ.Вопрос:
Какую простую вещь PHP (или компьютера) я, надеюсь, здесь не понимаю?
Я умею читать, верно? Это байты против мегабайтов в выводе на связанном изображении ниже? Я сравниваю яблоки с яблоками?
На выходе я вижу, например, 12604480 байт, это 12,6 МБ, верно? По сравнению с 512 МБ я не понимаю, в чем проблема.
А если это бесконечный цикл, я этого не вижу.
Спасибо за любую помощь.
Полный сценарий можно найти на Pastebin.
Подробности:
У меня это есть вначале, после вызова get_header():

Код: Выделить всё

echo 'Memory limit: ' . ini_get('memory_limit');
У меня есть такой код, размещенный по всему сценарию:

Код: Выделить всё

echo("This is the memory usage during the input loop");
echo("Memory used: " . memory_get_usage() . " bytes");
wp_reset_postdata();
echo("This is the memory usage after resetting post data in the loop");
echo("Memory used: " . memory_get_usage() . " bytes");
На этих скриншотах видно, что я не использую более 12 МБ, пока мой код все еще печатает информацию об их использовании.
Изображение, показывающее текущий лимит памяти и мое использование.
Изображение, показывающее увеличение использования памяти до прекращения печати.
Вот проблемный участок кода, когда Я вырезал этот раздел и просто напечатал там привет, всё работает нормально:

Код: Выделить всё

$args = [
'post_type' => 'attorney',
'posts_per_page' => -1, // Get all advisor posts, about 30 text records
];

$advisor_query = new WP_Query($args);

while ($advisor_query->have_posts()):

// $advisor_query->the_post();
// get the designation to be able to lower case it
$designation = get_post_meta(get_the_id(), 'attorney_designation', true);
$designation_lower = strtolower(get_post_meta(get_the_id(), 'attorney_designation', true));

// Get the required fields from the attorney/advisor post
$advisor_record = [
"advisor_name" => get_the_title(),
"designation" => $designation,
"designation_lower" => $designation_lower,
"advisor_description" => get_the_content(),
"advisor_image_link" => get_post_meta(get_the_id(), 'attorney_detailed_page_image', true),
];

// Categorize employees based on designation
if (str_contains($designation_lower, 'shareholder')) {
$employees['shareholders'][] = $advisor_record;
} elseif (str_contains($designation_lower, 'cpa') || str_contains($designation_lower, 'accountant') || str_contains($designation_lower, 'tax advisor')) {
$employees['cpas'][] = $advisor_record;
} else {
$employees['admin'][] = $advisor_record;
}

wp_reset_postdata(); // only testing this, it breaks without this
// was trying to unload the post from mem once I process it
// and move on to the next

endwhile;
Видишь, пока я читаю записи, они просто останавливаются. Там около 30 записей, так что я думаю, что это последняя.
Я поработаю над созданием лучшего MVCE здесь утром.
Я просто подумал, что это может быть очевидная проблема среды PHP, о которой я не знаю. У меня довольно приличный опыт работы с программным обеспечением в области компьютерных наук, но не в промышленности, поэтому я, вероятно, совершаю очень глупую ошибку.
Как бы то ни было, записей всего около 30, это в записях сотрудников всего около 10 текстовых полей, одно из которых является ссылкой. Я предполагаю, что работаю только со ссылкой, а не сохраняю изображения в памяти напрямую. Если бы это было так, это могло бы быть проблемой.
Спасибо за любые отзывы о моем PHP-коде, я работаю на Python и других специалистах, но, очевидно, не являюсь интерфейсным разработчиком.< /p>

Провел это исследование и многое другое:
Привет, посмотрел: Ошибка PHP из-за нехватки памяти, хотя предел_памяти не достигнут -- Я тестирую этот сайт разработки на виртуальном хостинге (это не локально длинная история). Я не думаю, что смогу контролировать ограничение памяти Apache2, но сомневаюсь, что это будет проблемой. Я пытаюсь загрузить здесь только около 30 записей.
Также: https://stackoverflow.com/a/55566634/3255525 - попробовал обновить wp mem в wp-config. php до 512 м, не повезло.
И: Неустранимая ошибка: недостаточно памяти, но у меня достаточно памяти (PHP), для исправления которой в основном требуется доступ к конфигурации Apache, но Я использую общий хостинг Hostinger для тестирования/создания этого сайта.
И: https://stackoverflow.com/a/46652352/3255525 - вопрос немного сбивает с толку, и Кажется, что ответ пытается исправить проблему, а не исправить ее. Возможно, я мог бы изучить это еще, я посплю над этим.

Подробнее здесь: https://stackoverflow.com/questions/790 ... -below-mem
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»