分析CPU使用在您的应用程序
来源:http://www.cnblogs.com/chensheng12330/p/3947585.html
确保有效地使用所有可用资源为应用程序编写代码时是非常重要的。其中最重要的是你的CPU资源。 有效地使用cpu允许应用程序运行得更快和更有效的。 即使你将编写应用程序特定的平台,记住,即使是同一类型可以有不同的CPU功能的通用平台。 CPU跟踪模板为您提供的方法来确定你的应用程序如何使用多个核心,你使用多少能源和其他资源的测量。
寻找瓶颈与性能监视器计数器
性能监视器计数器(pmc)硬件寄存器,衡量事件发生在处理器。 他们可以用来帮助识别瓶颈在您的应用程序通过识别过度数量的一个特定类型的事件。 例如,大量的条件分支指令可能表明一段逻辑,如果重新安排,可能会降低所需数量的分支。 尽管PMC事件可以带来这些问题,这是由你来匹配您的代码和决定他们将帮助你提高你的应用程序的性能。
在工具中,您使用计数器仪器跟踪PMC事件。
PMC事件列表填充一组初始的常见的事件。 您可以添加特定于您的应用程序通过窗口菜单的事件。
如果你打算记录相同的PMC事件频繁,将它们保存在一个模板。 否则,他们将失去当你关闭文档。 保存跟踪信息模板,请参阅 拯救一个仪器跟踪模板 。
跟踪单个事件
事件分析器工具跟踪性能监视器中断(PMI)事件,但在这种情况下,只有一个事件跟踪,你可以得到更多的细节。 设置每个收集的样本集的大小事件分析器工具。 事件分析器然后为您提供信息如何积极跟踪PMI事件是在样例。 使用跟踪这些样品显示窗格中滑块识别大量的活动。 确定高活动区域后,用细节窗格中获得更多的信息在每个特定的例子。
选择你想要的PMI事件跟踪通过选择它从事件名称的弹出式菜单控制。 如果没有列出所需的事件,确保您拥有启用它。 看到 添加新的PMC事件 创建一个新的事件。图显示了事件分析器跟踪一个PMC事件。
节能与能源诊断跟踪模板
能源诊断跟踪模板提供了关于能源使用的诊断,以及基本的开/关状态主要设备组件。 该模板由能源使用、CPU活动,网络活动,显示亮度,睡眠/唤醒,蓝牙,无线网络,和GPS仪器。
能源诊断日志记录,你的iOS设备记录与能源相关的数据不同时使用的设备。 因为日志记录是有效的,你可以记录所有的一天。 日志持续而iOS设备处于睡眠模式,但是如果设备电池干燥或iOS设备电源关闭,运行日志数据丢失。
开发人员设置的发展似乎只有在设备供应。 设置设备重启后消失。 Xcode恢复设置通过连接装置或仪器。
足够的能源使用事件记录后,您可以通过导入日志数据分析它们从电话到Xcode仪器能源诊断模板。 寻找高能源的使用领域,看看你是否在这些领域可以减少能源的使用。
减少你的应用程序使用的能量通过确保你关掉Recode。 您可以验证如果你有关闭特定的无线电使用能源诊断跟踪模板。 每个广播与红色描述跟踪和黑色面板中指定,指定它是关闭的。
与多核跟踪检查线程的使用模板
多核跟踪模板分析多核性能,包括线程状态、调度队列,并阻止使用。 它是调度线程工具。
线程状态工具为您提供了一个图形表示的每个线程状态在特定时间运行。 每个块用不同颜色来帮助你识别每个线程。 经过多个线程状态改变很容易通过改变颜色的识别跟踪窗格。 图7显示了四个线程被跟踪。
以下跟踪中捕获操作窗格。 颜色符号是默认颜色为每个行动,但他们可以改变你。
-
未知/终止(灰色)。 仪器无法确定线程的状态或被终止。
-
等待(黄色)。 线程正在等待另一个线程来执行一个特定的行动。
-
暂停(深蓝色)。 线程被放入挂起状态不会持续下去,直到它是专门告诉恢复运行。
-
要求暂停(浅蓝色)。 已经发送一个请求的线程将进入挂起状态。
-
运行(绿色)。 线程正在运行。
-
运行队列(黑色)。 队列中的线程运行。 之后,它会运行一个CPU。
-
等待不间断(不间断)(橙色)。 线程正在等待另一个线程来执行一个特定的行动和等待期间不能被打断。
-
空转处理器(白色)。 一个处理器线程是活动的,但不执行任何操作。
随着线程状态仪器,多核模板包含派遣仪器。 使用调度工具来查看当你执行调度队列。 你可以看到分派线程能持续多久和多少块。
多核跟踪模板显示在应用程序线程交互。然而,你不能够看到哪些核心被使用。 看到核心使用应用程序,请参阅 深入研究核心使用时间分析器跟踪模板 。
深入研究核心使用时间分析器跟踪模板
分析器跟踪模板执行低开销的时候,基于时间的采样系统的cpu上运行的进程。 它包含的时间分析器工具。
CPU策略的时间分析器工具显示了应用程序如何利用多核。 选择CPU战略跟踪文档中的配置跟踪窗格中显示的时间在x轴和y轴上的处理器核心。 CPU策略使用视图有助于比较核心的使用在给定的时间段。 有效的核心并发提高应用程序的性能。 重使用单个核心而其他领域核心保持安静可以描述区域需要更大的优化。
确保您的应用程序是使用多个核心同时通过跟踪窗格的放大。 很快一个或两个线程之间跳转的核心可以让它像时同时使用多个核心在现实中,只有一个核心是使用在任何时候。