Есть ли возможность освобождать память во время выполнения скрипта?
существует построчное чтение/запись, существует unset, существуют другие методики оптимизации потребления памяти. 
не видя задачи/кода можно только тыкать пальцем в небо.
у тебя виртуальная  (типа SWAP) засирается, а ты спрашиваешь про оперативную (типа RAM)

размеры объектов как соотносятся? итоговый екчель сколько, память сколько

делай через Csv или база - тхт файл, тхт файл   -эксель