Возможно мне не хватит квалификации, но:
Посмотрите, сколько времени занимает запрос, частота запросов и обновление данных, возможно есть смысл кэшировать результат и самому инвалидировать его. Изучите код внимательнее, там могут быть места для локального кэша из серии, когда значение некой переменной уже рассчитывалось и можно его заново не узнавать. Для PHP timestamp не так уж и сложно, загоните его в DateTime и может вам станет проще. В больших циклах можно использовать yeild, вроде как это несколько решает вопрос с памятью, почитайте об этом. Также, конечно же сделайте профилирование своего кода и узнайте, где самые тяжелые места и пляшите от этого.