Правило: размер архива наддува относительно исходного сериализованного объекта? - PullRequest
0 голосов
/ 28 июня 2010

По причинам, о которых я расскажу, мне нужно выделить место фиксированного размера, а затем использовать сериализацию Boost для хранения там объектов. Выбор формата архива является произвольным, и переносимость не имеет значения.

Класс довольно сложный (в его состав входят фундаментальные типы, массивы, указатели и дочерние классы), и со временем он будет расти.

Есть ли у кого-нибудь достойные оценки, которым они доверяют? Пространство важно, но это не так дорого. Я ищу относительно простые ответы, такие как «2 * (размер X) для двоичного файла» или «4 * количество членов + 3 * размерof (X), если вам нравятся текстовые архивы».

Спасибо

1 Ответ

2 голосов
/ 06 июля 2010

Нет ответов, вот что показали эксперименты.

Из нашего приложения у одного класса было ~ 190 членов, sizeof (A) = 12704. Это немного стесняется фактического общего размера из-за указателей.

Размер binary_oarchive был 13981, а text_oarchive был 21237. Это было для черт по умолчанию, также был зарегистрирован архив с полдюжиной производных типов.

Итак, я собираюсь использовать 2 * sizeof (A) в качестве верхней границы для текстового архива и, возможно, 1,5 * для двоичного файла.

...