Android - 字典文件。数据库和直接读取文件哪个更快?

发布于 2024-11-15 07:17:40 字数 171 浏览 6 评论 0原文

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

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

I'm making an dictionary app for android. This app uses stardict and DICT files which is are often pretty large (10MB or more) and contains just plain texts.

When users look up a word, my app will read the file randomly and return the result. I've read on some articles that reading file is expensive and slow. So I wonder if bringing all data into database is a better solution?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

最偏执的依靠 2024-11-22 07:17:40

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

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

使用数据库面临的唯一挑战是使用所需的数据对其进行初始化。解决此问题的最佳方法是提前创建所需的数据库,然后将其附加到您的 APK 资产。 这里有一个示例相当不错。

希望这有帮助。

I would suggest putting your words into a database for the following reasons:

  1. DB lookups on android with SQLite are "fast enough" (~1ms) for even the most impatient of users
  2. Reading large files into memory is a dangerous practice in memory-limited environments such as android.
  3. Trying to read entries out of a file "in place" rather than "in memory" is effectively trying to solve all the problems that SQLite already solves for you.

The only challenge presented in using a database is initializing it with the data you require. This problem can best be solved by creating the desired database in advance and then attaching it to your APK assets. There is an example here that is quite good.

Hope this helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文