【问题标题】:Android - dictionary file. Which is faster, database or reading file directly?Android - 字典文件。哪个更快,数据库或直接读取文件?
【发布时间】:2011-09-14 21:26:01
【问题描述】:

我正在为安卓制作一个字典应用程序。这个应用程序使用 stardict 和 DICT 文件,这些文件通常非常大(10MB 或更大)并且只包含纯文本。

当用户查找单词时,我的应用会随机读取文件并返回结果。我读过一些文章,阅读文件既昂贵又慢。所以我想知道将所有数据都放入数据库是否是一个更好的解决方案?

【问题讨论】:

  • 对您来说哪个更重要,开发速度还是易于开发?您也许可以使用“插值搜索”以同样快或更快的速度编写某些内容,但实现起来需要更长的时间。
  • 我的目标是尽快将结果返回给用户。谢谢你的算法,我会读一读。

标签: android database dictionary io


【解决方案1】:

出于以下原因,我建议将您的话放入数据库:

  1. 使用 SQLite 在 android 上进行数据库查找对于最不耐烦的用户来说“足够快”(约 1 毫秒)
  2. 在内存有限的环境(例如 android)中,将大文件读入内存是一种危险的做法。
  3. 尝试“就地”而不是“在内存中”从文件中读取条目实际上是在尝试解决 SQLite 已经为您解决的所有问题。

使用数据库面临的唯一挑战是使用您需要的数据对其进行初始化。最好通过提前创建所需的数据库,然后将其附加到您的 APK 资产来解决此问题。有一个例子here 挺好的。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多