- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想知道 iOS 中的 I/O 操作的开销有多大。
假设我有一个应用程序可以从 url 下载图像并将其存储在设备内存中。
下载当然是异步进行的,但我想知道如何将数据存储在设备内存中以及如何从内存中接收数据。
有很多小图片(缩略图),但我也存储大图片 (1-2 MB)。
我是否应该在后台线程上异步进行写入和读取操作,或者如果我在主线程上进行它不会对性能产生太大影响。
最佳答案
由于您已经在异步下载图像,因此异步存储它们也不会更困难。我会说这是最佳实践,因为它与 UI 内容无关,所以它不应该在主线程上。
看看这个 doc from Apple .他们并没有具体说明存储文件应该在后台线程上完成,但是他们承认,当您有很多文件时,这可能是一项非常昂贵的操作(当我们谈论图像时更是如此......)
If your app works with a lot of files, the performance of its file-related code is very important. Relative to other types of operations, accessing files on disk is one of the slowest operations a computer can perform. Depending on the size and number of files, it can take anywhere from a few milliseconds to several minutes to read files from a disk-based hard drive.
它们还为您提供了很多减少 I/O 操作的好技巧——比如重用 NSURL
对象——您可以在编码中轻松采用这些技巧。
关于ios - I/O操作性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39386473/
我是一名优秀的程序员,十分优秀!