在 Objective C 中分配与重用

Allocating vs. reusing in Objective C

根据经验法则,什么更好?

  1. 在我需要时分配一个新实例(在我的 UIViewController 的例子中)并在我完成时释放("releasing" 我保留它们并因此允许它们被 ARC 释放),或者;
  2. 维护可重用实例的动态池,因此即使在不使用它们时也会将它们保存在内存中。

在我看来,分配新实例可能是一项艰巨的工作,但可以避免由于重用实例的意外状态而导致的错误,以及在特定时间比实​​际需要的更多实例的内存负担。

很想听听您对此的看法...

过早的优化是浪费时间。在量化性能问题之前,除了保持代码合理并使用合理的算法之外,没有其他优化可以做。

在这种情况下,每次重新分配很可能不会成为性能瓶颈的可操作来源。但是,分配期间执行的任务可能是。例如,创建图像或加载资源而不是使用某种缓存。

但是通过缓存所述资源而不是作为视图控制器的相对宏大的对象,可以更好地解决这种瓶颈。