Можете ли вы ограничить использование памяти конкретным плагином?


Я знаю, что можно ограничить (или расширить) использование памяти всего сайта WP, используя:

define('WP_MEMORY_LIMIT', '64M')

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

Author: Tal Galili, 2010-09-07

2 answers

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

Вам лучше исправить сам плагин, чтобы не использовать так много памяти или просто еще больше увеличить общий объем памяти, выделенный для WordPress/PHP.

 3
Author: Viper007Bond, 2010-09-07 22:18:03

Вообще говоря, нет, это невозможно только для конкретного плагина. Плагин работает во всем процессе PHP wordpress (обычно), и поэтому он разделяет настройку ограничения памяти с остальными.

Однако вы можете попытаться ограничить объем памяти перед каждым вызовом плагина. Это было бы до любого крючка (это возможно), а затем в начале до включения (этого гораздо сложнее достичь).

Определение WP_MEMORY_LIMIT, кстати, перезаписывается, так что установка этой константы на что-то нецелесообразна, если вы действительно хотите ограничить память.

Если вы не боитесь иметь дело с внутренними компонентами системы, вы, однако, можете правильно ограничить память для всего процесса, а также, если вам нравится эксперимент, вы можете дать runkit попробовать и выполнить код плагинов в нем - как-нибудь.

 1
Author: hakre, 2010-09-07 21:54:57