5 performance objective-c nsmutablearray ios
根据ARC,会removeAllObjects在NSMutableArray对的CPU(释放的对象逐个明确),比简单地做更强烈myArray = [NSMutableArray new];,只是让ARC赶上整个释放内存块上它的下一个版本是圆的?
我可以用两段代码对此进行测试,但由于优化等原因,我真的只是对机制感到好奇。从一个C角度来看,调用所有要释放的对象听起来更强烈,但也许deallocObjective-C 中的树可能足够高效,ARC 可以以相同的速度执行此操作?
某些代码必须在 内部循环遍历该数组NSMutableArray,并调用release其所有非nil对象。如果在 ARC 或 inside 执行的代码之间存在差异NSMutableArray,则不应引起注意,因为代价高昂的部分不是循环开销,而是实际调用release和随后的潜在释放。
但是,有一个更显着的区别:当您调用 时removeAllObjects,该数组会保留其内部存储空间,因此下次您开始向其追加内容时,它不必增加其内部大小。如果您的使用模式要求将大量项目重复添加到同一数组中,则调用removeAllObjects可能会节省一些分配/重新分配周期。
| 归档时间: |
|
| 查看次数: |
374 次 |
| 最近记录: |