首页 > 代码库 > ios 性能优化之app运行时数据收集

ios 性能优化之app运行时数据收集

收集你的应用程序数据

来帮助您监控和提高你的应用程序,它能够收集信息在您的应用程序正在运行。 本章描述了如何直接工具来收集关于应用程序的信息。

注意: 你的设备之前必须提供开发工具可以收集数据。 看到 配置你的iOS设备的发展 

设置数据收集与目标弹出菜单

目标导航栏弹出菜单是用于设置设备收集的数据和应用程序或过程你将在收集数据。 点击弹出菜单让你选择目标。

目标弹出菜单为您提供三个选择收集数据:

  • 所有进程。 收集数据从当前系统上运行的所有进程。

  • 附加到进程。 收集数据从您选择的当前运行的进程。

  • 选择目标。 从您指定的特定应用程序收集数据。 应用程序自动启动,当你点击录制按钮。

通常,用户从一个应用程序收集数据。 目标一个应用程序时,所有的仪器在跟踪文档从目标应用程序收集数据。

bullet
针对一个应用程序

你可以设置每个仪器跟踪文档从一个特定的应用程序,收集数据过程,或设备,独立于其他乐器。 通过这种方式,您可以在多个应用程序的交互方式收集数据。

bullet
设置不同的目标,多个工具

您可以添加多个版本的相同的工具来跟踪文档通过拖拽工具的另一个副本从图书馆到文档来记录数据从不同的应用程序,过程,和每一个版本的仪器或设备。

你可以同时收集各种数据流。 例如,您可以同时收集数据:

  • 所有进程有一个乐器。

  • 一个应用程序第二个仪器

  • 不同的应用程序的第二个版本第二个仪器

  • 第三个应用程序与第三工具

iOS发展目标选择的弹出菜单只包含目标概要文件。 OS X开发,弹出菜单中包含了目标你已经描述。

在选择平台时,你看到的iOS设备只有当它们插入你的电脑或当你从一个特定的无线设备配置工具来收集数据。

bullet
启用无线设备

使用无线连接允许您根据需要移动你的设备进行测试,而不必受耳麦在有线或不小心拔掉设备测试。 无线连接测试时特别有用:

  • 加速度计。 向各个方向移动设备没有被固定。 无线连接,确保一个完整的测试设备。

  • 配件。 USB附件插入到自由槽和测试它。

重要的是: 你好,多播必须启用无线网络接入点。

注意: 关闭数据收集设备原因停止。 你必须重新连接设备到你的电脑恢复数据收集。

从仪表收集数据

节省时间的运行时间分析器工具应用程序图标在被告席上记录仪器没有运行时事件。 短暂的或瞬态事件记录。 您可以配置文件如下:

  • 系统时间。 启动配置所有系统进程。

  • 时间剖面的具体过程。 启动时间与目标应用程序分析器工具从弹出菜单。

  • 自动时间剖面旋转的应用。 自动配置文件屏蔽(旋转)在未来的应用。

  • 允许任何过程的跟踪(10小时)。 跟踪任何过程,发生在未来10个小时。 绕过必须输入一个密码在10个小时。

bullet
从码头分析器信息收集时间

使用iprofiler收集数据

iprofiler 是一种命令行工具,用于测量应用程序的性能在不启动仪器。 在收集性能数据,数据导入工具为了得到数据的可视化表示。 收集到的数据是保存在一个.dtps 包可以打开的工具。 iprofiler 支持以下跟踪模板:

  • 活动监视器。 监控系统整体活动和统计数据,包括cpu、内存、磁盘和网络。 还活动监视器监控所有现有流程和父/子过程层次结构。

  • 配置。 措施跟踪分配的堆内存使用率,包括特定的对象分配的类。 按地区分配还可以记录虚拟内存统计数据。

  • 计数器。 收集性能监视器计数器事件使用基于时间或事件的抽样方法。

  • 事件分析器。 样品在系统上运行的进程的cpu通过低开销、基于事件的抽样。

  • 泄漏。 措施一般内存使用情况,检查内存泄露,并提供统计数据由类以及对象分配内存地址历史所有活动分配和泄露的街区。

  • 系统跟踪。 提供全面的信息系统行为通过显示线程调度时,从用户到系统代码和显示所有的转换通过系统调用或内存操作。

  • 时间分析器。 执行低开销、基于时间的采样系统的cpu上运行的进程。

bullet
从iprofiler收集和查看数据

导入保存文件后,仪器自动打开相关的跟踪模板和用收集到的数据填充它们。 您可以查看和操作数据找到任何问题与你的应用程序。

图4 - 1 进口时间分析器数据

iprofiler 提供了一组有限的配置选项定义什么数据收集。

命令

描述

- l

提供了一个列表的所有支持的模板。

- l

提供了一个列表的所有支持的模板和什么每个模板的描述。

遗留

执行中的遗留工具命令行界面 /usr/bin/instruments 

- t持续时间

集数据收集的时间长度。 如果没有设置这个选项,然后收集数据,持续10秒。 持续时间可以设置为秒(1 - 1),毫秒(10米或10毫秒)或微秒(10 u或10美元)。

我间隔

集的频率测量样本期间。 如果没有指定这个选项,它使用仪器默认的间隔时间。 时间间隔可以设置为秒(1 - 1),毫秒(10米或10毫秒)或微秒(10 u或10美元)。

窗口期

限制了性能度量的最后时期 iprofiler 运行。 如果没有指定这个选项,性能测量在整个运行。 可以设置到秒(1 - 1),毫秒(10米或10毫秒)或微秒(10 u或10美元)。

注意: 可以使用这个选项只有在- timeprofiler 和- - - - - - systemtrace 模板的选择。

o d路径:

指定目的地的路径和名称保存收集的数据时使用。 如果没有指定路径,输出保存到当前的工作目录。 如果没有指定basename,进程名称或使用进程ID。

仪器名称

运行指定的模板。 有效名称选项- ActivityMonitor , 分配 , 计数器 , -eventprofiler , 泄漏 , -systemtrace , -timeprofiler 

至少有一个模板必须列出。 您可以运行多达七模板。

-kernelstacks

堆叠只包括内核栈时使用此选项。

如果既不 -kernelstacks  -userandkernelstacks 选项指定,堆叠包含用户堆栈。

-userandkernelstacks

回溯跟踪包括内核和用户堆栈。

如果既不 -kernelstacks  -userandkernelstacks 选项指定,堆叠包含用户堆栈。

-allthreadstates

导致时间分析器模板配置所有线程。 如果不指定这个值,则时间分析器配置文件只运行线程。

——一个进程/ pid

附加到一个正在运行的过程。 指定一个字符串将附加的名字开始的字符串。 指定进程ID高度与这一过程相关联的进程ID。

 泄漏 选项要求特定的单个进程或进程ID被指定。

可执行(args…)

使目标过程期间推出的测量。 列出了可执行文件和参数,如果他们正在从命令行调用。

iprofiler例子

常见的列表 iprofiler 下面的命令行例子。

下面的示例收集数据从所有正在运行的流程对当前采样时间设置在仪器使用时间分析器和活动监视器模板。 收集到的数据保存到工作目录中 allprocs.dtps 

iprofiler -timeprofiler -activitymonitor

下面的示例打开和使用时间分析器从YourApp收集数据模板。 8秒数据收集和数据保存 / temp / YourApp_perf.dtps 

iprofiler -T 8s -d /temp -o YourApp_perf -timeprofiler -a YourApp

下面的例子从过程收集数据与823年的进程ID使用泄漏和活动监视器模板。 收集数据为2500毫秒(2.5秒)并将它保存到工作目录 YourApp_perf.dtps 

iprofiler -T 2500ms -o YourApp_perf -leaks -activitymonitor -a 823

下面的示例打开和使用时间分析器从YourApp收集数据和配置模板。 收集数据为默认的时间设定在仪器和保存 / tmp / allprocs.dtps 

iprofiler -d /tmp -timeprofiler -allocations -a YourApp.app

下面的例子从YourApp发现打开和收集数据 / /路径 与参数 __arg1 使用时间分析器和系统跟踪模板。 数据被收集了15秒,但只有在最后2秒保存收集的数据。 数据保存到工作目录中 YourApp_perf.dtps 

iprofiler -T 15 -I 1000ms -window 2s -o YourApp_perf -timeprofiler -systemtrace /path/to/Your.app arg1

最小化影响数据收集工具

工具的目的是减少自己的影响数据收集。 通过改变一些基本的设置,您可以进一步减少数据收集工具的影响。

你可以减少许多仪器的取样间隔,以收集更多的数据。 然而,高采样率,结果从一个简短的取样间隔会导致几个问题:

  • 处理器时间需要每个样品。 高采样率使用更多的处理器时间。

  • 取样间隔时间可能不一致。 每个样本用于启动中断。 变量在这些中断发生时可导致显著的采样率的变化当使用非常小的样本间隔。

  • 小样本间隔导致更多的样品。 每个示例使用系统内存和大量样品快速消耗可用内存较小的内存的机器。

你可以改变的取样间隔为仪器仪表通过点击检查员图标。

仪器在延迟模式下运行

增加绩效数据通过延迟数据分析的准确性,直到你放弃您正在测试的应用程序。 仪器分析和显示数据,同时你的应用程序运行时,允许您查看数据收集。 仪器在延迟模式运行延误的分析数据,直到完成数据收集,在您的应用程序运行结束之后或者在单击停止。 在延迟模式下,你是无法收集数据与设备交互。

在延迟模式中,仪器收集数据完成后,仪器处理数据并将其显示在屏幕上。 即使推迟数据分析增加了时间的后端数据收集的过程,它有助于确保绩效数据是准确的。

您可以设置在延迟模式下运行的仪器工具的偏好。

bullet
为仪器设置延迟模式

使用延迟模式移动数据处理后收集的数据,导致延迟的数据收集工具处理数据。 在特别长的痕迹,这种延迟是很重要的。 为了避免这种延迟,你可以设置延迟模式只有那些痕迹,需要非常精确的数据收集。

bullet
为跟踪设置延迟模式
 

ios 性能优化之app运行时数据收集