从性能的角度来看,在swift ios应用程序中使用小数据库的最佳方法是什么?



我正在使用一个sqlite数据库来填充一个关于不规则动词的ios应用程序——这是一个语言学习应用程序。

数据库有3个表:动词类别、动词和动词元素。最后一个词每个动词结尾有一个条目,所以每个动词有50多个条目。数据库总计约2500个条目,每个条目有3-5个短字符串字段。

我的问题是,从性能的角度来看,最好的做法是:

(1) -写结构体来建模数据,每个都有适当的函数,并在应用程序初始化时以结构体的形式将db加载到内存中,或者(2) -为每个新视图编写函数来查询sqlite数据库

我的猜测是(1)对于这种大小的小数据库要好得多,但我想我应该咨询你们的集体智慧,因为我是一个新手。谢谢你的建议。

顺便说一句,这是我问过的一个关于如何将数据输入ios应用程序的问题的后续问题:

在swift/swiftUI/Xcode中存储和导入(非用户)数据的最佳实践是什么?

这两种解决方案都应该足以满足您的情况。

当涉及到性能时,这是一个你所衡量的问题。

  • 快速加载时间
  • 后台快速操作
  • 流畅的用户界面和交互
  • 能源consumtions
  • 内存消耗

例如,当内存消耗增加时,你必须明白你的应用程序在后台更有可能被终止。如果用户决定离开5分钟,打开一个加载大量内存的游戏,你的应用程序更有可能被终止,以获得其他应用程序的内存。

但再次。两种解决方案都应该适合您在这里描述的尺寸。随着时间的推移,如果这种情况增加,您可能需要重新考虑。

还有一个选项3,你可以直接将这些值硬编码到结构中,这样你甚至可以损失初始加载时间。只需编写一个脚本或其他东西,将带有字符串的文件转换为源代码。

你考虑过CoreData吗?我用它为一个小DB,它工作得很好。CoreData当然有学习曲线,但一旦你克服了,它会为你做很多工作,还会与SwiftUI进行一些集成。我并不是说它在任何方面都表现得更好或更差,只是说一旦经过学习曲线,它就很容易使用,当然还有苹果CoreData团队的优化。

最新更新