У меня вопрос, является ли это хорошим инструментом для уменьшения использования памяти.
Нет, это не очень хороший инструмент для этого. Сериализованное представление объекта включает в себя множество «метаданных», которые описывают тип и представление объекта. Если вы не сериализовали значительное количество объектов в один «поток», издержки «метаданных» сделают сериализованную форму больше, чем исходная форма. Игнорируя эти издержки, сериализованное представление обычно более компактно, но сохранение будет зависеть в значительной степени от типов представления объекта. (Подробнее см. «Протокол потока сериализации объектов» .)
И, как упоминалось в других ответах, вы временно увеличиваете использование памяти при сериализации и десериализации, потому что вам нужно хранить как последовательное, так и объектное представления И карту, используемую для работы с циклами и т. Д.
Если вы хотите представить структуру данных в компактной форме в памяти, вам лучше разработать собственную схему сериализации для конкретного приложения. Но ИМО, было бы лучше записать данные в файловую систему или базу данных.