Синтаксических файлы и хранить все данные в памяти, безусловно, даст вам преимущество в скорости. Проблема с этим решением заключается в том, что если ваше приложение перейдет на задний план (пользователь получает телефонный звонок или просто покидает приложение по своей воле), никто не может гарантировать, что данные сохранятся в памяти.
Эти данные могут быть понятны GC, если система решила, что ей требуется больше памяти.
Это означает, что когда пользователь возвращается к приложению, и если вы передадите на то, что данные находятся в памяти, вы можете столкнуться с исключением. Поэтому вам нужно рассмотреть эту ситуацию.
И с этой точки зрения хорошо хранить данные в файле, который может быть проанализирован в нужное время, даже подумал, что это может быть более медленное решение.
Другое решение, на которое вы можете обратить внимание, - это проанализировать эти данные при первом запуске приложения до SQLite DB и использовать его оттуда или даже сохранить его в БД в первую очередь. Это даст вам преимущества обоих миров, вам не придется анализировать данные перед их использованием, и у вас будет быстрый доступ к нему с помощью Cursor
, и вы не столкнетесь с проблемой удаления данных в случае недостаточной памяти в система.
Операция БД была бы дешевле, чем предыдущие упомянутые? То есть извлекает данные из таблицы дешевле, чем разбор JSON снова и снова для каждого запроса или он дешевле, чем хранение модели в памяти? – user584513
доступ к памяти будет самым быстрым, но получение данных из БД будет намного дешевле, чем получение его из файла путем его разбора. используя БД, вы мгновенно получаете доступ к определенной требуемой строке данных, в то время как разбор файла занимает больше времени. –
спасибо Эмиль! :) – user584513