3

如果有一个应用程序,我们启动它,我们可以使用 Instruments 逐秒查看内存使用情况,但如果在初始化过程中,内存在一瞬间飙升到 60MB,然后又降下来怎么办?(例如一些大型图形上下文和位图和 CALayers)。

有没有办法查看应用程序启动以来的最大值?我想到了一个穴居人的方法,就是在我们分配了大图形上下文和位图和 CALayers 之后,添加一个虚拟循环,比如一百万或一千万,这样内存使用在几秒钟内是恒定的,并且可以可以在 Instruments 中看到。

但是如果有 5 个图层,我们应该分配一个图形上下文,获取位图,并将其设置到图层,然后立即释放图形上下文,因为它不再需要了,这应该会更好。然后我们继续下一个图形上下文、位图和图层等,而不是创建五个图形上下文、位图,并在最后释放所有五个。但是要执行穴居人方法,我们需要在每次发布之前将虚拟循环添加到所有五个位置。有更好的方法吗?

4

1 回答 1

2

使用 Leaks or Allocations 模板并选择 Allocations 工具。分配工具旁边有一个图表。单击图表上方的时间线并按住鼠标按钮。当您沿着时间线拖动时,Instruments 将向您显示在该时间点分配的内存总量。

Leaks 和 Allocations 模板之间的区别在于 Leaks 模板将 Allocations 工具设置为跟踪所有分配,而 Allocations 模板将 Allocations 工具设置为仅跟踪活动分配。

于 2012-08-16T19:48:47.850 回答