我试图优化一段代码,从硬盘加载大量图像,并对其进行一些计算。我第一次尝试加速的方法是创建一个NSOperationQueue
加载并为每个图像分别执行NSOperations
计算。有没有办法在Objective-C中自动运行代码?
不幸的是,并没有真正缩短所花费的时间。
其中一个原因可能是由于创建NSOperations
并将它们添加到queue
而导致的开销。另一个可能的原因是硬盘驱动器没有设计用于多线程工作,所以不是逐个读取文件,而是需要在扇区之间来回跳转。
所以我的问题是,如果有任何的方式来运行OBJ-C或Ç代码原子,这样当一个NSOperation
读取文件时,它不会被某些操作试图读取另一个文件不安,但仍然所有NSOperations
可以对他们的图像做他们的计算?
感谢您指出。对我最有用的一章是[使用调度信号量来规范有限资源的使用](http://developer.apple.com/library/ios/documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationQueues/OperationQueues.html# // apple_ref/DOC/UID/TP40008091-CH102-SW24) – Enie