накладные расходы у бинарной сериализации очень маленькие, если в общем то скорость загрузки подобного объекта равна скорости загрузки того же 1 Гб данных в оперативку, тут потеря идет не на алгоритме а на скорости работы HDD, я бы посоветовал разобрать задачу на части, не думаю что следует грузить весь список в память.
Нужно пересмотреть алгоритм, как вариант если в каждом объекте списка есть некий объект, который и занимает большую часть памяти его можно хранить отдельно, а в объекте при прописать его загрузку из файла при необходимости. Тогда сам список будет скорее всего мелким (логически можно предположить, что не больше 50 мб) а файлы будут по необходимости подгружаться.
Если же в объекте нет элемента который потребляет много памяти, но объектов списке настолько много, то следует использовать либо клиент серверную архитектуру, либо базу данных (sql к примеру).