вы можете взглянуть на технологии кэширования, такие как APC , которые позволяют вам записывать данные прямо в оперативную память, чтобы вы могли быстро получить к ним доступ, что пригодится, если вы не хотите многократно выполнять дорогостоящие задачи, такие как запросы mysql.
Примером кеширования, о котором я мог подумать, было бы то, что вы могли бы кешировать электронные письма, а не получать их снова и снова с почтового сервера. По сути, кэширование в оперативной памяти - очень полезный метод, если в вашем скрипте есть вещи, которые вы хотите сохранить для следующего выполнения скрипта, но если ваш скрипт выполняет уникальные вещи каждый раз, когда он выполняется, он будет бесполезен. также как и для contoll, вы можете вызывать memory_get_usage () при каждом выполнении скрипта и записывать это значение в кэш apc, чтобы каждый cron мог получить это значение и посмотреть, достаточно ли памяти для его завершения.
что касается среднего использования, вы могли бы написать массив с последними значениями, скажем, 100 выполнений функций, и при повторном вызове этой функции он может apc_fetch вычислить это из оперативной памяти и вычислить среднее использование памяти для этой функции, а затем сравнить его с количеством оперативной памяти. используется сейчас, а затем решите, начать ли. Более того, он может записать эту оценку в текущую переменную использования памяти, чтобы предотвратить запуск других сценариев. в конце этой функции вы снова вычитаете эту сумму из переменной.
ТЛ; др:
посмотрите на функции apc_fetch, apc_store и memory_get_usage