我编写了一个与 BLE 设备交互的 iOS 应用程序 - BLE 设备发送 iOS 设备数据,应用程序分析数据然后保存。 iOS 应用每秒接收数据,因此我保存读数的数组(如 NSString )会很快变大。
应用程序已启用在后台运行,直到此时我一直在使用 NSUserDefaults 来保存这个大数组。我对我的应用程序进行了跟踪,发现它在后台使用了 iPhone 6 的 CPU 的 3%,并发现 NSUserDefaults 导致了这种情况。我阅读了它,发现 NSUserDefaults 为此目的是多么低效。
现在,我想放弃这种方法并使用不同的方法。我读过一些这样的方法,比如将数据保存到 CoreData、Plists 或纯文本文件中。这些方法的效率和实现难度如何?我之前用文本文件做过一些事情,这很容易,但我经常需要获取该文本文件的全部内容并将其加载到数组中进行解析,这似乎对内存有问题。因此,如果您有任何建议,我很乐意听取他们的意见。
Best Answer-推荐答案 strong>
查看 Apple Performance Tips ,我发现了你的问题。
简而言之:在写入磁盘之前获取大量数据,以尽量减少使用 Core Data 或 SQLite 对闪存驱动器的访问。
您可以在 this link 中查看如何实现 SQLite 持久性。
改进文件管理 - 性能提示
Minimize the amount of data you write to the disk. File operations are
relatively slow and involve writing to the flash drive, which has a
limited lifespan. Some specific tips to help you minimize file-related
operations include:
- If your data consists of structured content that is randomly accessed, store it in a Core Data persistent store or a SQLite
database, especially if the amount of data you are manipulating could
grow to more than a few megabytes.
关于ios - 在 iOS 上保存大数组的最佳方法,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/35368119/
|