如果有一个应用程序,并且我们启动了它,我们可以使用Instruments逐秒查看内存使用情况,但如果在初始化期间,内存瞬间激增到60MB,然后又下降了呢?(例如一些大的图形上下文、位图和CALayers)。
有没有办法查看应用程序启动以来的最大值?我想到了一个山顶洞人的方法,那就是在我们分配了大的图形上下文、位图和CALayers之后,添加一个虚拟循环,比如说一百万或一千万,这样内存使用就会在几秒钟内保持不变,并且可以在仪器中看到。
但是,如果有5层,我们应该分配一个图形上下文,获取位图,并将其设置为层,然后立即释放图形上下文,因为它不再需要。然后我们继续下一个图形上下文、位图和层,等等,而不是创建五个图形上下文、位图,并在最后释放所有这五个。但是要做洞穴人方法,我们需要在每次释放之前将虚拟循环添加到所有五个地方。有没有更好的方法呢?
发布于 2012-08-17 03:48:48
使用泄漏或分配模板并选择分配工具。在分配工具旁边有一个图表。单击图形上方的时间线,然后按住鼠标按钮。当您沿时间线拖动时,Instruments将显示在该时间点分配的内存总量。
Leaks模板和allocations模板之间的区别在于Leaks模板将Allocations工具设置为跟踪所有分配,而Allocations模板设置allocations工具仅跟踪活动分配。
https://stackoverflow.com/questions/11989913
复制相似问题