Android - файл словаря. Что быстрее, база данных или чтение файла напрямую? - PullRequest
9 голосов
/ 14 июня 2011

Я делаю приложение для словаря для Android.Это приложение использует файлы stardict и DICT, которые часто бывают довольно большими (10 МБ или более) и содержат только простые тексты.

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

1 Ответ

19 голосов
/ 14 июня 2011

Я бы предложил поместить ваши слова в базу данных по следующим причинам:

  1. Поиск БД на Android с SQLite "достаточно быстр" (~ 1 мс) даже для самых нетерпеливых пользователей
  2. Чтение больших файлов в память является опасной практикой в ​​условиях ограниченного объема памяти, таких как Android.
  3. Попытка чтения записей из файла «на месте», а не «в памяти», эффективно пытаетсярешить все проблемы, которые SQLite уже решает для вас.

Единственная проблема, возникающая при использовании базы данных, - это инициализация ее данными, которые вам необходимы.Эту проблему лучше всего решить, предварительно создав нужную базу данных, а затем подключив ее к активам APK.Вот пример здесь , который довольно хорош.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...