2010-09-09 5 views
2

Я ищу в хранении много числа, как Int16. Учитывая основные данные, поскольку остальные модели реализованы в данных Core.Размер файла данных ядра

Так что я сделал простое приложение. Основные данные с 1 сущностью и 1 атрибутом типа Int16. Введено 1 миллион записей в тип хранилища SQLite, а размер файла - 16,2 МБ. На самом деле, если я перейду на Int64, я бы получил тот же размер файла. При написании простого двоичного массива C должно быть около 2 МБ.

Вопрос в том, почему данные Core беспокоились с таким количеством различных форматов чисел, если все равно будет передано NSNumber? И есть ли способ заставить данные Core хранить данные как истинные Int16? или short в терминах C?

Спасибо.

+0

Имейте в виду, что Core Data хранит больше, чем просто необработанные числа. Он должен поддерживать остальную структуру базы данных вокруг них. –

ответ

4

Только потому, что Core Data поддерживает все эти числовые форматы, это не значит, что основной механизм хранения должен хранить их по-другому. Если вы попытаетесь использовать двоичный магазин, вы, вероятно, получите разные размеры файлов.

Для хранения этого целого числа я бы поместил их все в объект NSData и сохранил его в Core Data.

+0

Это отличная идея! Теперь файл данных составляет всего 2,1 МБ. Только 100 КБ накладных расходов, стоит того, чтобы это было удобно. – Dan