非常大的NSDictionary与核心数据vs SQLite在iPhone上只读查看?

我正在修改一个iPhone文字应用程序,我使用DAWG结构在用户输入时实时查找来自用户定义的字库的字谜.那部分效果很好.识别出单词后,我想检索有关plist文件中当前所有单词的具体信息(用单词键控).应用程序启动时需要导入此信息并可用.

在启动时,我可以使用initWithContentsOfFile轻松地将plist准备到NSDictionary对象中,但这会创建一个包含~200,000个键/值对的字典.我猜这不是最好的方法,因为txt,bin和xml格式的plist文件分别是2.8 MB,3.9 MB和7.5 MB.

我应该使用Core Data还是SQLite?我的首要任务是性能,因为我希望在用户输入的情况下实时查找数万个实时结果的信息.

谢谢

解决方法

您只能通过尝试两种方法和分析来回答性能问题(使用Instruments.app).也就是说,有很多Core Data提供对象图管理功能,听起来并不像你需要的那样.如果您真正想要的是键值存储,那么使用NSDictionary是有道理的.您应该使用内存中持久性存储与核心数据堆栈进行比较.如果您的目标是最大读取性能并且您可以将整个数据集放入内存,那么没有理由去磁盘上的SQLite或Core Data持久性存储.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能