性能问题 - iOS中的plist vs sqlite

use*_*015 4 iphone ipad ios

我需要跟踪一些变量并经常保存它们.我不需要复杂的搜索和排序,只需简单的读/写.

plist和sqlite之间的读/写性能有什么不同?

除了以上两种方法,我应该使用核心数据吗?

请给我一些提示.

谢谢.

sin*_*h99 7

在SQlite中,您可以执行所有与SQL相关的功能,例如create,delete ..还可以存储大量数据.但是在Plist中你可以使用jst商店.

Plist和SQLite有不同的用途,如下所示.

PList是一种文件格式,用于存储少量结构数据(少于几百千字节),通常是字典.尽管代码可以很容易地编写以对其进行排序,但PList本身并没有排序功能.属性列表可能是最容易维护的,但它将一次性加载到内存中.这可能会占用设备的大量内存

SQLite是一个成熟的数据库.文件大小(在iPhone上)基本上是无限的.内置排序功能.查询和关系表设计是可能的.性能应该与您可能提出的任何排序算法一样好.另一方面,sqlite数据库将仅加载您请求的数据.我不确定您的数据是如何构建的,但您可以使用单个数据库表轻松创建键值对.(带有键列和值列的单个表)然后,如果是我,我会编写一个Objective-C类来包装数据库查询,这样我就可以编写简单的语句,如:

NSString *welcomeText = [[MyData sharedData] dataWithKey:@"WelcomeText"];
Run Code Online (Sandbox Code Playgroud)

首先将数据放入数据库并不困难.您可以使用命令行sqlite3 utility来批量加载数据.有一个名为.import的命令可以从文本文件中导入数据.