2016-02-09 3 views
0

В настоящее время я испытываю проблему с размером массива моего размера. Если я прокомментирую вызовы API, которые, в свою очередь, вставляют данные в Realm, чтобы они запускались по одному за раз, размер файла составляет примерно 1 МБ. Однако, если я вызываю их все асинхронно в фоновом потоке (так как они не связаны друг с другом), размер файла составляет 16 МБ. Любые идеи о том, как отладить это?Размер файла в реальном времени резко увеличился

ответ

1

Это неотъемлемая часть функциональности Королевства. Поскольку вы манипулируете данными внутри Realm, это не помогает восстановить дисковое пространство после факта. Это связано с тем, что это дорогостоящая операция с точки зрения производительности и без контекста, потенциально не имеющая никакой пользы.

Проблемы, возникающие в связи с этим поведением в сочетании с очень большими наборами данных, обсуждались ранее в Realm GitHub (https://github.com/realm/realm-cocoa/issues/1159). Инженеры Realm Cocoa и инженеры, отвечающие за внутренний движок Realm, знают об этой проблеме и изучают способы попытаться найти хороший компромисс в том, чтобы сделать систему более разумной, не внося накладные расходы на производительность.

В то же время, я бы порекомендовал, не волнуйтесь об этом, если он фактически не попадет в файл, который вы считаете неприемлемым. Если это произойдет, вы можете использовать [RLMRealm writeCopyToPath:error:] для явного создания копии Царства, в котором будет задействовано все лишнее пространство и поменять его на прежнее место.

+0

Благодарим за ответ. Так разве это не так быстро нарастает? Я только ввел менее 2000 записей, а файл - 23 МБ. Я не могу представить, как это будет выглядеть, когда оно будет введено в производство. Существуют ли какие-либо ETA, когда это ограничение будет разрешено? –

+0

Я пробовал предлагаемое обходное решение, и я не могу надежно открыть файл царства, используя тот же ключ шифрования исходного файла. В настоящее время я использую структуру 0.98.0. Любые идеи относительно того, почему это может быть так? –

+0

Я пробовал это предложение, но без шифрования и он отлично работает. Есть ли что-то неправильно с версией шифрования? –

Смежные вопросы