答案 0 :(得分:2)
什么巴伐利亚说;你试过用NSAutoreleasePool
围绕它吗?
这是一个经典的微观基准。虽然它肯定表明存在问题,但问题实际上可能是基准测试与预期的现实世界模式不同,以至于错误存在于基准测试中。
在高效设计的应用程序中,它不会多次从磁盘读取相同的图像数据。
这是Heapshot analysis的主要候选人。
(感谢您的跟进;乐于助人!)
您描述的症状听起来像是VM泄漏(某些东西正在消耗地址而不进行分配;例如映射内存)或未被修剪的缓存(包含VM分配)。
您是否启用了GC?如果是这样,这可能很容易,因为未触发GC阈值。收集者不知道从非GC到GC区域的实际大型分配。如果强制收集,它将解决这个特殊的边缘情况。
尝试查看VM仪器或在命令行中使用vm_map查看应用程序中占用地址空间的内容。