0

在我的应用程序中,当我将一些自定义组件添加到 UIImageView 时,我发现性能很差。很可能是前面提到的自定义组件,它们需要改进,但我希望能够衡量这些改进。我还想看看在特定视图的动画期间 UIImageView 被绘制了多少次。

我采用的一种策略是将 UIImageView 子类化(仅用于基准测试)并在我的子类日志中覆盖“绘制”方法,然后调用超类的方法。

这很好,UIImageView 的子类不会调用 drawRect 的保存。我可以以这种方式覆盖 UIImageView 的“绘图”方法吗?

理论上,我可以通过将 UIImageView 的子类替换为 UIView 的子类来完成类似的操作,但这会变得更具侵入性,我只想将其作为最后的手段。

最后,我是不是走上了一条兔子路,并且有一个非常明显的解决方案(或工具)盯着我看?我知道 Instruments 可以在该领域的帧速率方面提供一些分析,但由于我对该工具的了解有限,我看不到解决我的问题的方法。

4

1 回答 1

2

使用仪器。

它是为这些东西而生的。你自己说了。

如果您以前从未使用过“仪器用户指南”,那么它是一个很好的起点。

学习如何使用乐器是值得的。在调整应用程序的性能、查找内存泄漏等时,您将始终使用它。


如果你真的确定要知道一个方法的执行时间,那么你可以看看 DTrace。它非常强大,但比 Instruments 更难。您还可以使用它在 Instruments 中构建您的自定义工具。

于 2012-06-19T21:35:22.367 回答