Instrument调试xcode技巧、问题、苹果开发者账号

INSTRUMENTS调试工具的使用(六)

2017-06-24  本文已影响264人  刀客传奇

版本记录

版本号 时间
V1.0 2017.06.23

前言

我们在做app的时候,不是做完功能就结束了,很多时候是需要进行检查和优化的,而xcode自带了一个很好的检查工具,可以检测内存泄漏。还可以查看哪一个方法比较耗时。还可以检测离屏渲染等等,随后的几篇我们就说一下这个工具的使用。感兴趣的可以看这几篇。
1.INSTRUMENTS调试工具的使用(一)
2.INSTRUMENTS调试工具的使用(二)
3.INSTRUMENTS调试工具的使用(三)
4.INSTRUMENTS调试工具的使用(四)
5.INSTRUMENTS调试工具的使用(五)

这一篇就先说一下DTrace数据使用和自定义instruments工具

十三、使用DTrace数据

  你如果你跟踪一个包含自定义 instruments 工具的文档,你可以导出这些 instruments 工具底层的脚本,并使用 dtrace 命令行工具来运行它们。运行脚本后, 你可以重新导入结果数据进 Instruments 应用里面。

  自定义 instruments 工具使用 DTrace 来实现。DTrace 是最初由 Sun 创建和移植 到 Mac OS X v10.5 的一个动态追踪工具。由于 DTrace 深入操作系统内核,所以你可 以访问内核本身或你计算机上运行的进程的底层的操作。许多内置的 instruments 工具都是基于 DTrace 的。而且虽然 DTrace 本身就是一个非常强大和复杂的工具, Instruments 应用给你访问这个强大的 DTrace 工具 供了一个套简单的接口,而无 需太复杂的操作。

  DTrace 并没有移植到了 iOS 上面,所以不能在运行在 iOS 设备上面的应用创建自定义的 instrument 工具。


十四、关于自定义instruments工具

  自定义 instruments 工具使用 DTrace 探针(probe)。探针(probe)是一个就像是在你的代码里面放置了一个传感器。它响应 DTrace 可以绑定的位置和事件,比如函数的主入口。当函数执行或事件产生的时候,相关的探针会被触发,且 DTrace 运 行任何和探针相关的动作。大部分 DTrace 的动作只是简单的收集关于操作系统的数据和用户程序此刻的行为。然而可以运行一个自定义脚本作为动作的一部分。脚本可 以让你使用 DTrace 的特性来微调你收集的数据。

  每次遇到探针的时候它都会触发,但是和探针相关的动作不需要在探针每次触发 的时候运行。断言(predicate)是一个可以让你限制探针动作何时运行的条件状态。

一个 instruments 工具由以下几部分构成:

  所有的 instruments 工具都应该包含起码一个探针和它相关的动作。类似的,所有的 instruments 工具都应该包含一个合适的名称和述来标识它们。


十五、创建自定义的Instrument工具

  为了创建一个自定义的 DTrace 的 instrument 工具,选择 Instrument > Build New Instrument。

创建需要以下几个过程:


十六、内置instruments工具

  Instruments 应用里面内置了许多 intruemtns 工具。每个 instrument 工具都包 含它自己的配置选项和显示信息的方式,及收集合适的数据类型。内置的 instruments 工具按照它收集的数据类型分组为少数几个类别。以下个部分更详细的 述了内置 instruments 工具。

Core Data Instruments[Core Data相关]

1. Core Data Saves

  Core Data Saves instrument 工具记录了 Core Data 应用中保存的操作。该 instrument 工具可以在单一进程或所有当前系统运行的进程中执行操作。它只为这 些使用 Core Data 的进程记录数据。该 instrument 工具在它的实现上使用了 DTrace, 并可以导入一个 DTrace 脚本。

详细面板的样本数据
该 instrument 工具捕获以下信息:

跟踪面板的显示项
跟踪面板可以被设置来显式以下任一信息数据:

2.Core Data Fetches

  Core Data Fetches instrument 工具记录 Core Data 应用中 取保存数据的操作。 该 instrument 工具可以运行在单一进程或所有系统当前运行的进程之上。它只会记 录使用 Core Data 的进程的数据。该 instrument 工具在实现上使用了 DTrace,并可 以导入 DTrace 脚本。

详细面板的样本数据
该 instruments 工具捕获以下信息:

跟踪面板的显式项
可以设置跟踪面板来显式以下任何的数据:

扩展详细面板的补充数据
对于详细面板的条目,你可以打开它对于的扩展详细面板来查看调用的栈信息和对应事件发生的时间。

3. Core Data Faults

  Core Data Faults instrument 工具记录 NSManagedObject 或它的一对多关系的 延迟初始化过程中发生的故障事件。该 instrument 工具可以运行在单一进程或所有系统当前运行的进程上面。它只收集使用了 Core Data 的进程的数据。该 instrument 工具的实现使用了 DTrace,并可以导入 DTrace 脚本。

详细面板的样本数据
该 instruments 工具捕获以下信息:

跟踪面板的显式项
可以设置跟踪面板来显式以下任何的数据:

扩展详细面板的补充数据
  对于详细面板的条目,你可以打开它对于的扩展详细面板来查看调用的栈信息和对应事件发生的时间。

4. Core Data Cache Misses

  Core Data Cache Misses instrument 工具记录高速缓存未命中导致的故障事件。 该 instrument 工具可以运行在单一进程或所有系统当前运行的进程上面。它只记录 使用了 Core Data 的进程。该 intrument 工具的实现使用了 DTrace,并可以导入 DTrace 脚本。

注意:该 instrument 工具 供了 Core Data Fault instrument 工具 供的行为的一个子集, 但是它对你分析整个应用程序的性能更有帮助。

** 详细面板的样本数据**
该 instruments 工具捕获以下信息:

跟踪面板的显式项
可以设置跟踪面板来显式以下任何的数据:

**扩展详细面板的补充数据 **
  对于详细面板的条目,你可以打开它对于的扩展详细面板来查看调用的栈信息和对应事件发生的时间。

后记

未完,待续~~~

狗狗
上一篇 下一篇

猜你喜欢

热点阅读