Adobe Scout 提供了大量美丽的数据供您查看,但解读这些数据并非总是简单明了。本文介绍了 Scout 在幕后收集的数据以及它如何使用该数据来创建所有漂亮的图片,以便您可以更轻松地理解所发生的情况。

基本知识

启动分析会话时,Flash Player(或 Adobe AIR)会打开与 Scout 的套接字连接并开始发送数据。Scout 的主要面板中提供的大部分数据都是所定义的活动的名称和计时详细信息。(除了活动之外,还有跟踪语句、Stage3D 命令和纹理,以及一些其他内容。)Scout 将分析这些活动详细信息并生成其图表和图形。

注意:为简单起见,本文引用了由 Flash Player 发送给 Scout 的数据,但本文也适用于由 Adobe AIR 发送给 Scout 的数据。

所定义的活动

在 Scout 中,活动是与某个特定功能相关联的时间块。Scout 中的活动具有以下特征:

  • 每个活动都具有名称、开始时间和结束时间。某些活动还具有其他参数。
  • 活动可以嵌套。如果活动 A 在活动 B 之前开始并且在活动 B 完成后结束,则 Scout 会将 B 视为 A 的子活动。
  • Scout 根据它所获得的计时数据计算每个活动的总时间total time)和自身时间(self time)。总时间是指活动的开始时间和结束时间之间的时间量。自身时间是指在该活动上(但不包括在其子活动上)花费的时间。换言之,活动的自身时间是它的总时间减去它的直系子活动的总时间。

如果您已了解 Scout 的自定义遥测 API(我之前在通过 Adobe Scout 自定义遥测中介绍过),则活动非常像自定义跨度指标,只是对它们的处理方式有一些微小的差异。

一个具体的活动示例

假设 Flash Player 将表 1 中的活动数据发送到 Scout。

注意:为绝对准确,Flash Player 不向 Scout 发送每个活动的开始和结束时间,而是发送结束时间和持续时间。但结果是相同的。

表 1:发送到 Scout 的示例活动数据

活动名称 开始时间 结束时间
A 1.0 8.0
B 5.0 7.0
C 8.0 9.0

Scout 将使用此数据来计算自身时间和总时间,如表 2 中所示。

表 2:您在 Scout 界面中将会看到的示例数据

名称 自身时间 总时间
A 5.0 7.0
 ->  B 2.0 2.0
C 1.0 1.0

如您所看到的,Scout 会根据计时数据推测活动 B 是活动 A 的子活动。顺便说一句,如果您使用自定义跨度指标 API 来定义非嵌套的活动(例如,B 在 A 期间开始但在其之后结束),则在 Scout 中查看该数据将会生成错误或者只是不会显示数据。因此,在定义您自己的嵌套指标时,请注意按照这些事件的开始顺序的反向顺序来结束这些事件。

解读数据

牢记前面的解释,那么现在解释 Scout 中显示的数据应该会容易一点了。首先,在 Activity Sequence 面板中,会列出 Scout 知道的有关单个帧的所有活动,以及它们保持未变的嵌套关系(参见图 1)。

图 1:单个帧的活动在 Activity Sequence 面板中显示为嵌套的活动

您甚至可以看到每个活动的开始时间,但在默认情况下该功能被关闭,因为它通常没有用处。(右键单击列标题可以更改哪些标题可见。)

注意:Scout 通常会筛选掉总时间小于 0.5 ms 的活动。要切换此行为,请单击 Hide Small Items 按钮(显示在图 1 的左上角)。

另一方面,Top Activities 面板忽略了活动的开始时间和嵌套关系,以便它可以显示多个帧的聚合数据。在该面板中,同一活动的多个实例被分组到一起(按照活动名称),而不是像在 Activity Sequence 面板中那样显示多次,因此 Scout 会指出活动在所选的时间跨度内发生了多少次。(参见图 2)。

图 2:Top Activities 面板忽略了活动的嵌套和顺序,因为它显示多个帧的聚合数据。

这两个面板背后的数据是相同的;它们只是对该数据进行了封装并且以不同的方式显示。了解这些面板背后的数据有助于更明确地理解这些含义。例如,当某个 ActionScript 函数调用 BitmapData.draw() 或类似的 API 时,将会调用 Flash Player 渲染器。由于渲染在 ActionScript 执行之后开始并且在其结束之前结束,因此,Scout 会将其视为 ActionScript 活动的子活动。但是,只有在保留了嵌套信息的 Activity Sequence 面板中检查时才会看到这一情况。如果您查看 Top Activities 面板,所有活动都将被分组到一起,无论它们是由 ActionScript 触发的还是由 Flash Player 自动执行的。

最后,这可能不是一目了然的,但是在 Summary 面板中为每个条目显示的时间是相关活动的自身时间(参见图 3)。Summary 面板将活动分组为多个预定义的类别,并且为每个类别显示自身时间的总和。(查看哪个活动名称属于哪个类别的最简单方法是查看 Scout 使用的颜色。)

图 3:所有活动的总自身时间显示在 Summary 面板中。

ActionScript 面板

Scout ActionScript 面板中显示的数据与迄今为止讨论的所有事物完全不同。这是因为,如果 Flash Player 在每次调用 ActionScript3 函数时都向 Scout 发送一个活动,则分析开销可能会使处理速度变得极为缓慢。因此,Flash Player 大约每毫秒对调用堆栈进行采样,并且 Scout 将推测正在发生的情况。例如,考虑 Flash Player 发送表 3 中呈现的数据的情况。

时间 调用堆栈
1000 ms FunctionA  ->  FunctionB
1001 ms FunctionA  ->  FunctionB  ->  FunctionC
1002 ms FunctionA  ->  FunctionB  ->  FunctionC
1003 ms FunctionA  ->  FunctionB

通过该数据,Scout 可以估计出 FunctionC 大约执行了 2 ms。但是,不知道它在该期间内是执行了一次还是许多次 — Scout 只知道对于两次连续的采样,它位于调用堆栈的顶部。而且,在两次采样期间,FunctionC 可能已调用了 FunctionD(如果 FunctionD 快速返回)。这是 ActionScript 面板只能提供近似结果的原因,因此,要想获得更准确的结果,您应当选择一个较长的时间跨度。Scout 检查的样本越多,结果将越准确。

下一步阅读方向

现在,您已了解了有关 Scout 使用的数据的更多信息,您可能希望阅读通过 Adobe Scout 了解 Flash Player,该文章介绍了 Scout 如何帮助您了解在 Flash Player 中发生的活动。祝您分析愉快!

由于我们正在向新评论系统迁移,所以当前的评论功能暂时关闭。在这过渡时期,请将您的意见和建议通过反馈表格提交。多谢您的理解。

转载于:https://www.cnblogs.com/chenhongyu/p/3290505.html

了解 Adobe Scout 收集和使用的数据相关推荐

  1. 借助 Adobe Scout 理解 Flash Player

    原文链接 Adobe Scout 用于优化 Flash 内容,是一款极为强大的工具,因为它能让您看到 Flash Player 幕后正在发生的事情.但是若明白 Flash Player 为什么做这些事 ...

  2. Adobe Scout 使用参考说明

    Adobe Scout 用于优化 Flash 内容,是一款极为强大的工具,因为它能让您看到 Flash Player 幕后正在发生的事情.但是若明白 Flash Player 为什么做这些事情,您看到 ...

  3. Understanding Flash Player with Adobe Scout

    Adobe Scout 是一款强大的Flash内存分析工具,可以观察到Flash Player后台正在运行的内容.从Adobe Scout上表现的内容,就可以知道Flash Player正在做什么.为 ...

  4. adobe scout cc 2015中文版下载(附使用教程)

    adobe scout cc 2015是一款轻量级的内存概要分析软件,广泛适用于桌面 (Flash Player) 和移动设备 (Adobe AIR) 上运行的 Flash 内容.它能够让您洞悉过去无 ...

  5. Flash Builder 4.6 配合使用 Adobe Scout CC || SWF Scout Enabler

    写本文的原因: 1. Adobe Scout CC 只能配合 Flash Builder 4.7 及其新版编译器 ASC 2.0 使用: 2. 你仍然在用 Flash Builder 4.6 或者像我 ...

  6. 从Apache的日志文件收集和提供统计数据(一个Python插件架构的简单实现)

    从Apache的日志文件收集和提供统计数据 这一章我们将介绍基于插件程序的架构和实现.作为例子,我们将构建一个分析Apache服务器log文件的框架.这一次我们不再使用单片机的方式来创建,而是改为采用 ...

  7. ELK根据服务类型收集多个容器数据

    转载来源 :ELK根据服务类型收集多个容器数据 : https://www.jianshu.com/p/29ad69776ae5 1.安装docker-compose yum install -y p ...

  8. python数据收集整理教案_数据收集整理教学设计

    数据收集整理教学设计 在教学工作者实际的教学活动中,可能需要进行教学设计编写工作,借助教学设计可以更大幅度地提高学生各方面的能力,从而使学生获得良好的发展.那么什么样的教学设计才是好的呢?下面是小编整 ...

  9. 大数据快速入门(03):漫谈数据收集,你的数据值百万

    札记 亲爱的粉丝老爷,好久不见. 这次我为文章增加一个新的栏目,叫"札记",记录一下平时的工作,给冷冰冰的技术文章增加一些温度,给即将到来的冬天暖暖心,大概 200 字左右. 说说 ...

最新文章

  1. Linux服务器安装cuda,cudnn,显卡驱动和pytorch超详细流程
  2. svn服务器新建项目,SVN 创建项目
  3. ajax下拉搜索框,jQuery的带搜索过滤ajax加载下拉框插件
  4. 使用vue构建一个可视化大数据平台
  5. bex5 mysql_BeX5开发中MySQL视图使用的一个小问题
  6. SQL Server2019 Express下载安装教程-——孟师傅
  7. 数据字典的作用是什么,它有哪些条目?
  8. 计算机网络——透明网桥算法
  9. 少年派的奇幻漂流 Life of Pi (2012)
  10. 攻防世界 WEB mfw
  11. 国外服务器 ping值不稳定,服务器ping值不稳定是什么原因?
  12. python程序员专用壁纸_程序员炫技必备:用Python生成马赛克画!(文末附源码)...
  13. Jeaf Dean万字长文回顾2020谷歌技术发展(上)
  14. C#实现全盘扫描,找到符合要求的文件,并把路径写入到TXT中
  15. Beyond Compare4秘钥
  16. 免费影像数据下载网站汇总——2010年7月28[转自ESRI中国]
  17. 简单3dsmax城堡
  18. BI 前端实践 4:自定义多维分析界面
  19. 西瓜书第一、二章节笔记
  20. 行测-图形推理-6-相似图形类

热门文章

  1. 梅西、内马尔谁是全能的五边形战士?教你用BI做出可视化能力图
  2. 帆软报表设计器菜单栏介绍之二文件菜单
  3. Flex Java Servlet 实现简单图片编辑
  4. 友商对于鸿蒙系统,谷歌新系统上线!鸿蒙面临生死线考验,华为喊话友商,被小米拒绝...
  5. java做网页客户端_如何成为 Java web开发者
  6. 去掉超链接的颜色_Word中怎么快速批量删除去掉网站超链接技巧
  7. mysql事务的ACID属性:
  8. java web 收发邮件_Java总结(五)之实现javaweb发送邮件
  9. pandas 选择数据 字符串_读完本文,轻松玩转数据处理利器Pandas 1.0
  10. 计算机组成原理 第一章 计算机系统概述