Нам требовалась сериализация довольно большой иерархии классов C ++ с большим количеством наследования, сжатия, общих указателей и т. Д. Я решил использовать библиотеку boost::serialization
.
Моя проблема в том, что при компиляции этой библиотеки на VS 2008 cl
занимает более 1 ГБ оперативной памяти. Я полагаю, это вызвано сериализацией на основе шаблонов в Boost. Это вызывает много проблем при создании целого проекта на более слабых ПК. Что интересно, время компиляции не намного больше:
no serialization: 15:38 [mm:ss]
serialization: 17:06 [mm:ss]
Мой вопрос: можно ли сократить использование памяти? Может быть, с более длительным временем компиляции?
Редактировать
Это увеличение используемой памяти происходит в нескольких файлах во время компиляции проекта C ++ / CLI, который фактически использует сериализацию из библиотеки выше. Без сериализации cl.exe
имеет максимальный объем памяти для самого большого файла около 150 МБ, обычно не более 80. Увеличение использования памяти для некоторых файлов составляет от 4 до 8 раз.