Ben*_*ard 5 iphone performance cocoa objective-c ios
我正在寻找有关如何使用仪器的Time Profiler来增强特定操作的一些建议.我有一个分页滚动视图,可以按需加载其内容.当滚动到新页面时,另一个页面将向右加载两页.当当前页面滚动50%的屏幕时会发生这种情况,而在较慢的设备上,加载足够瓶颈会中断滚动的平滑度.滚动感觉就像它在50%品脱时非常短暂地暂停,然后跳回到行动中.
我应该注意到我的应用程序没有网络组件,因此在获取数据时瓶颈不是 - 它都在加载新视图.
当我努力改进这一点时,我需要对转换进行基准测试,以便我可以评估增强功能的效果.观看了WWDC会议后,我了解了时间分析器的基本知识,但我并不相信我正在寻找正确的事情.
我正在运行仪器,然后执行滚动.我看到了CPU活动的预期峰值.然后我选择尖峰并查看符号名称.正如您在下面看到的,当我隐藏系统库并显示Obj-C时,我正在处理一个短暂的90%尖峰,运行时间为81.0毫秒.

当我深入到我的代码时,我的困惑就出现了.我发现最大的贡献者之一(23毫秒)是一个只使用的小例程sortedArrayUsingDescriptors.我无能为力.其他时候根本原因是我使用CGRectInset - 几毫秒.我想我希望看到更多与图像使用或类似的东西有关.
我想我不知道我是否正确对待正确的事情.我真的打算尝试将我的6ms操作减少到5ms并期望看到差异吗?我正在寻找合适的工具来诊断我的问题吗?
关于衡量什么以及在哪里集中精力的任何提示或指示都将受到重视.
考虑使用中央调度在后台线程上尽可能多地执行非 UI 工作(获取、排序、选择等)。这将利用多 CPU 机器的强大功能,让您更快地离开主线程。仅根据需要使用主线程进行 ui 工作。
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |