iphone - 非常大的 NSDictionary vs Core Data vs SQLite 在 iPhone 上进行只读查找?

标签 iphone sqlite core-data plist nsdictionary

我正在修改一个 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)。也就是说,有很多核心数据提供对象图管理功能,但听起来并不像您需要的那样。如果您真正想要的是键值存储,那么使用 NSDictionary 是有意义的。您应该与使用内存中持久存储的核心数据堆栈进行比较。如果您的目标是最大读取性能并且可以将整个数据集放入内存中,则没有理由使用 SQLite 或磁盘上的 Core Data 持久存储。

关于iphone - 非常大的 NSDictionary vs Core Data vs SQLite 在 iPhone 上进行只读查找?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3591156/

相关文章:

ios - 在 mergeChangesFromContextDidSaveNotification 之后的 NSFetchedResultsController 委托(delegate)方法中的 SIGABRT

iPhone:从 Interface Builder 设置 Controller 变量

iphone - 用阴影画线,但只想保留阴影。操作系统

iphone - 子类化 UIWebView 是否会令人不悦?

php - java.lang.String 无法转换为 JSONObject

iphone - SQLite 和 iPhone SDK 的线程

ios - 当我尝试删除 UITableViewCell 时,出现此错误 : Invalid update: invalid number of rows in section 0, 但我似乎无法修复它

iphone - 使用 MKNetworkKit 下载文件的总大小

c++ - 无法在 SQLite 的命令行上访问表

iOS 核心数据怎么会泄露?