2013-08-15 3 views
2

На файловой системе IOS, есть способ для оптимизации производительности доступа к файлам с помощью многоуровневой структуры каталогов против плоской структуры каталогов?Производительности плоских структур каталогов в прошивкой

В частности, мое приложение имеет Objects, каждый из которых содержит несколько изображений и файлов данных. Пользователь может создать тысячи из этих Objects, и мне нужно оптимизировать доступ к одному изображению для ~ 100 произвольных Objects за раз.

В этой ситуации, как мне организовать файлы в файловой системе? Будет ли многоуровневой структурой каталогов быть быстрее, чем квартира? И если да, то как я должен структурировать многоуровневую систему (т. Е. Сколько уровней и сколько подкаталогов/файлов на уровне)?

СПАСИБО!

ответ

1

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

Если вам нужно ускорить его, я бы предложил попытаться создать какую-то структуру, основанную на имени файла. У вас может быть папка, в которой есть все элементы, начинающиеся с буквы «a» или «b» и т. Д. И т. Д. Это разделило бы его на 26 папок, что должно значительно уменьшить количество предметов в каждом. В зависимости от того, как вы называете файлы, вам может понадобиться другая схема, чтобы каждая из папок имела одинаковое количество элементов в ней.

0

Если вы используете Core Data, вы всегда можете включить параметр Allows External Storage в атрибуте вашей модели, и пусть система решит, куда она должна идти. enter image description here

Это был бы достойный первый шаг, чтобы убедиться, что производительность в порядке.

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