我正在尝试优化一段代码,从硬盘驱动器加载大量图像并对其进行一些计算。我第一次加快速度的尝试是创建一个NSOperationQueue
加载并为每个图像单独NSOperations
进行计算。
不幸的是,这并没有缩短所花费的时间。
一个原因可能是创建NSOperations
并将其添加到queue
所导致的开销。另一个可能的原因是硬盘驱动器不是为多线程工作而设计的,因此磁盘的标头不需要逐个读取文件,而是需要在扇区之间来回跳转。
所以我的问题是,如果有任何方法可以原子地运行 obj-C 或 C 代码,那么当一个NSOperation
读取文件时尝试阅读另一个文件的某些操作不会打扰,但是所有NSOperations
仍可以对其图像进行计算吗?