您的位置:首页 > 其它

开始使用Adobe Scout

2013-07-12 11:05 239 查看
http://www.adobe.com/devnet/flashruntimes/articles/adobe-scout-getting-started.html ADOBE SCOUT是下一代为桌面和移动端的FLASH内容分析的工具,它可以让你从内部观察flash的运行,这在过去是不可能的。更棒的是,它真的非常简单非常容易上手,没有复杂的安装步骤。 在过去,你可以用FLASH BUILDER 的 PROFILER在ACTIONSCRIPT的代码级别观察FLASH 的运行,但所有FLASH PLAYER的内容操作对你来说是隐藏起来的。如果你在渲染或不正确地使用了某个api时,原来的分析器不可能指出你的错误,因为你不能看到在场景后面发生了什么。 SCOUT通过收集正在进行的内部数据解决了这个问题。它帮你明白你的代码如何和运行时交互,因此你可以真正发现执行时错误的根源。 ADOBE SCOUT 是如何工作的 SCOUT依赖telemetry功能,这个功能在Flash Player 11.4 和 Adobe AIR 3.4中引入的。该功能在ACTIONSCRIPT代码执行的同时收集FLASH运行时的内部的详细信息,并且把它发送给SCOUT,SCOUT再把它清晰地简明地图形地呈现出来,因此你可以快速的诊断执行时的错误。

SCOUT不需要DEBUG版本的FLASH PLAYER,这意味着你可以用发行版的环境,在用户最终运行的swf和网页中分析你的内容。再重要的是,SCOUT可以快速的分析你的内容,因些,你可以更加关注用户体验时执行的问题。 在SWF中开启高级的telemetry 功能 你不必作任何特殊的事来开启SCOUT,仅仅是在SCOUT运行时运行你的swf,你就可以看到一个新的会话出现了,并且数据传了进来。但默认的状态下swf仅仅为scout提供了一些最基本的信息,为了得到所有可以得到数据,如ACTIONSCRIPT代码的信息,渲染时显示列表的详细信息,STAGE3D信息,你需要在swf文件中打开 advanced telemetry,ADOBE不默认暴露这些信息的原因是防止一些人用scout轻松的得到你的flahs内容的详细信息。尽管这样别急,开启这个功能很简单,SCOUT已经提供。 有几个不同的方式开启advanced telemetry. 使用Flash Builder 4.7 最简单的方式开启advanced telemetry.,ADOBE推荐的,它内置了SCOUT的支持。4.7有新的ACTIONSCIRPT编译选项开启advanced telemetry.。选择 Enable Detailed Telemetry如下图

使用Flash Professional 如果你在使用Flash Professional,没有集成可视的选项,在下个版本中ADOBE会加入,但同时你可以下载使用PYTHON脚本(add-opt-in.py) 在 https://github.com/adamcath/telemetry-utils. 如果你还没在安装PYTHON,访问http://python.org 。然后你仅仅运行add-opt-in.py 对你的swf里就可以了。这个方法对已存在的swf或不方便再编译的swf。 已开启advanced telemetry.的例子 Hungry Hero (Starling)http://www.hungryherogame.com
Feathers Components Demo (Feathers) http://feathersui.com/examples/components-explorer
Invawayders (Away3D) http://awaymedia.co.uk/projects/invawayders/Main.html
Backyard Demo (Coppercube) http://www.ambiera.com/coppercube/demo.php?demo=backyard&mode=flash
仅需要打开scout,访问上述链接。 本地和远程分析 使用SCOUT需要下面的组件 Flash Player 11.4 (plugin or standalone) or Adobe AIR 3.4.
Adobe Scout
如果你正分析的内容和scout在同一台机器上,上面的已经够了,只需要打开scout,运行swf就可以了。 你也可以在不同的机器上分别运行scout和swf,这叫远程分析。这样的情况很普遍: 一个桌面机器正在运行swf,但另一台电脑运行SCOUT。这非常有用对于debug一个远程项目或对于不能运行scout的机器来说。
一个移动设备正运行相应的内容,另一台电脑运行scout。这对于开发移动项目来说是非常有用的,因为你需要调整执行效果在特定的设备上。
对桌面内容的远程分析 如果你正运行你的内容在另一台机器,你可以控制Flash telemetry 数据到任何一台正在运行SCOUT的机器。你需要创建一个叫.telemetry.cfg的文件在运行flash内容的机器上,它的位置依赖于你的操作系统。 MacOS: ~/.telemetry.cfg
Windows: %HOMEDRIVE%%HOMEPATH%\.telemetry.cfg
注:如果你的内容在chrome里运行,在文章最后有一列表被频繁问道的问题。 假设SCOUT运行在192.168.1.20:7934,为了连接到它,文件内容是这样的 TelemetryAddress=192.168.1.20:7934
SamplerEnabled = true
CPUCapture = true
DisplayObjectCapture = false
Stage3DCapture = false

上面后四行响应了scout中的"新会话的设置",但需要在这里重点指出的是你必须手动输入这些如果你在进行远程分析。你进行配置之后,只需要运行你的内容,它就会出现在scout里。

为移动设备远程分析AIR
在应用Scout Companion的帮助下移动设备的配置已经变得非常简单了,对IOS和ANDROID的都已经可以下载了。下载安装之后,你可以使用你本地的SCOUT了,然后在SCOUT里配置想要接收哪些数据。
使用Scout Companion时注意
确保的你设备和电脑连接在相同的网络里,登陆Scout Companion,它会寻找运行SCOUT的电脑,它会显示一系列运行scout中的电脑。
当你电脑的名子出现时,点击它
在SCOUT桌面里,选择你想接收的数据,你会看见它会反应在Companion 上
登陆你的AIR应用,你会看见多了一个新的会话


在scout中开始新的会话
如果你在运行本地的flash内容,或者跟着上面的指导作的,那么你已经开始分析了。只需要登陆你的内容,一个新的会话就会出现在SCOUT中,你的内容可以是安装了标准版本player的浏览器中,或者通过AIR。当你看到一个有很多颜色的图表出现就说明它开始工作了。
Flash Player 只是开始运行的时候检查是否有scout在运行,如果flash player已经运行后启动scout,那么你必须重新启动你的内容。在屏幕左边,你一系列打开的会话,会显示出swf文件的名子和它的域。如果你想新的数据传进来,只需要点击红方块。如果你把你的flash内容停止后,会话会自动停止。



默认情况下,所有你加载的flash内容会在SCOUT中开始一个新的会话。这使得启动分析非常简单,但如果你同时在浏览器中打开其它的flash内容也会被加载进来这令人非常讨厌。
为更好的控制,你可以告诉scout过虑掉你不想要的会话。如果你点击过虑图标,scout仅会开始和选择的那个swf有相同名子的会话。这意味着你可以在浏览器上访问各种内容而你选择的那个会话不会在列表中沉下去,而一旦你开始具有相同名的swf时scout又能开始新的会话。



设置新的会话
现在你可以在scout里开始一个新的会话了,你可以开始考虑什么样的数据你想收集。在屏幕的左边所有会话之上你可以看到有一个叫"新会话的设置"标签。这代表你可以让flash player传递不同数据过来。注意一些scout的功能只有收集到相关数据时才会工作。



开始一个新的会话前,检查这些收集数据选择项,因为会话开始之后就不能改变了,事先考虑好你需要观测的数据非常重要。如果你对执行的观测如在某个函数上的时间花费感兴趣,仅需要收集低功效的数据。如果你索性将所有数据都收集起来,定时传过来的数据可能不准确,因为flash player不得不收集额外的工作来收集和传送数据。
这里有一条简明的策略:

基本的遥测是一直都被允许的,它提供关于flash player正在持续工作的信息,和CPU 显存的一些基本信息。
ACTIONSCRIPT采样器通过定期的调用栈的快照测量执行你的代码的时间花费。它种方式效率比较低,因为它使用statistical sampling,如果你用足够长的一段时间观察采样器,它能准确指出哪些函数花费大量时间。
CPU使用状态会定期测量操作系统报告的FLASH PLAYER对cpu的消耗。它和MAC的活动监视器或windows的任务管理器看到的恰好一样。
显示列表渲染的详细信息会提供正在渲染的可见的展示在屏幕上的所有对象的详细分解。它会让你知识屏幕的哪个区域花费大量时间渲染。
STAGE3D记录捕捉每一条STAGE3D的命令,因些你可以在scout里重复单步测试它们。由于非常容易在几分种里产生GB级的数据,你可以在选择记录模式时选择延时,它让你在捕获STAGE3D数据时开始统计。
记住,开启任何除基本遥测信息之外的类别,你的swf必须打开advanced telemetry

使用scout分析
Scout用户界面设计的很简单高效的去用。有很多可视化的功能使用明白数据并过滤掉不需要的信息,这样你可以快速的发现执行时的问题所在。界面有很多不同的面板,乍一看有点压抑,但当你得知每一个部分的详细信息你就会明白它们是如何合理的组织在一起的



面板可以通过简单的拖拽tab就可以重新设置位置。如果你关闭一个面板,你可以在window菜单里再次打开。一个具体的布局被叫作工作空间,你可以在window菜单保存并切换工作空间。
你可以隐藏左边的显示会话列表的侧边栏,通过点击折叠按钮



最重要的面板是帧和时间轴,就是在最中心的图表。它展示了你的swf每一帧的时间花费的分解,包括的内存使用情况和事件情况。
为了使一个会话中导航更方便,屏幕最上面展示了一个放大的帧时间轴示图。由于它使你看到了整个会话中峰值的所在,所以被叫作会话概况。

会话概况
如果你想跳到某一个时间或会话,如一个大峰值时,简单的在点击会话概况中相应的部分,默认下,你会看到一个图表展示每一帧的时间花费,但你可以右键它着其它额外的图表。如下图所示。





这些和帧和时间轴上看到的图表是一致的,并且在整个会话过程中你可以选择他们中的任意得到这种图表的全部视图。这在最后监视整个过程中的内存使用特别有用。例如,如果你运行你的程序足够长时间,一个非常慢的内存泄露可以很清晰的在会话概况的图表中看到。

帧和时间轴
在scout里最主要的用于定位执行问题的面板是帧和时间轴。在面板最上面的图表里显示了帧时间轴,把整个会话分解为各个单独的帧,并且显示了每一帧消耗的时间



最需要注意的是红色的线。它代表在程序中设定的fps下预定的每帧执行时间。例如一个swf fps是30帧,那么预定的执行时间就是33ms,也就是说如果每帧花费走过33ms,你的程序会变得卡,这是真的不想发生的。
上图清晰的展示了哪一帧超过预算时间并且需要注意。你可能好奇为什么红色的线会变,因为在你的程序动态的改变了framerate.
下面需要注意的是帧时间轴图表上的颜色是变化的。每一个颜色代表执行时不同的活动,所以你可以看到每一帧上最花费时间的是什么。
蓝色 执行as
绿色 显示列表渲染
黄色 网络和视频
橙色 其它(垃圾处理,事件处理等等)

不用记住这些颜色的含意。右边的总结面板会显示每种颜色的含义。当你鼠标移到某一个条上时也会出现相应的提示,如下图。



在帧和时间轴面板里还有其它几种图表。CPU监控一目了然,需要注意的是多核的cpu使用可能超过100%。内存分解反应了相应执行活动的内存使用,颜色的含义和上面一样。
通过点击开关按钮你可以选择显示哪个面板。
如果你点击事件,你会看到事件轨道在内存图表下弹出。每一个水平轨代表一种具体类型的事件,高亮度的蓝色条告诉你有多少事件在这帧发生。
事件轨道如下
鼠标 有多少鼠标事件发生
键盘 有多少键盘事件发生
网络 有多少网络io操作发生
定时器 timer类正在被使用
渲染 是否正在渲染
Trace 事件 在你的as代码里是否有trace()函数被调用。
正如你所看到的,帧和时间轴面板让你快速发现你应用的热点,识别哪里花费了大量的时间并且为什么花费这么多时间。

总结面板
总结面板是对帧和时间轴面板中不同颜色的图表的描述,但它不只是图例的作用。你可以在帧和时间轴面板里点选或拖一系列帧。总结面板然后对这些帧进行统计,这样你可以看到这段时间里执行的整体情况。
下图展示了选择了两帧的总结面板。第一个要注意的是左上角的帧频率。图里只有1.8fps,而起始设置的目标是24,因些帧频超过248%的预算时间。内容运行的不流畅,你肯定要知道发生了什么。
请看分解的时间,你可以看到最主要的时间是花费在as代码上。这暗示你可能想调查代码在作什么,然后去优化它。在scout里有其它的几个面板帮你作这件事,一会你会看到。注意,如果你点击右边齿轮状的icon,可以选择是显示全部时间还是每一帧的下平均时间。



假设,由于代码确实有问题,你可能想过滤掉其它的分类,以便专注在as代码的执行上。在scout里有不同的颜色,这可能会使人分心,因些需要花几秒钟过滤掉你不想要的东西。
点击as分类,你可以看到其它的分类变成灰色的了。更重要的是,帧时间轴也被过滤了,这样你可以看到每帧仅有as代码的图表。实际上,所有在scout里的颜色都被过滤了,这让你非常简单的专注在你关心的数据上。





在过滤的分类上再点一下,更详细的信息分类会展示出来。如下图Bitmap以更详细的分类说明。



首要活动
首要活动面板展示了比总结面板更详细的关于flash player内容所发生的内容的信息。它不是把时间分解成高级别的分类,而是展示了一个详细的活动的分解,如处理特殊事件。如下图



右边的列反应了每个活动花费的时间和所在时间的百分比。在这个例子中,最花费时间的(54% 2279ms)花费在enterframe事件处理上,因此有必要去优化它。

活动序列
活动序列面板显示了哪个活动花费最多时间,但是它通常对查看每一个活动的精确序列非常有用。这是活动序列面板最主要的目的。不像首要活动面板那样统计很多个帧,活动序列面板只显示单帧的信息(否则就有太多的信息需要显示了)。



在活动序列面板里展示了简明的顺序和一帧中嵌套的活动。例如,在上图中,你可以看到92%的时间花费在处理enterframe事件上,并且这依次引起了gameObjectDie 事件,这个事件花费了61%的时间,你可以同时看到不少的垃圾回收在处理的时候发生和文本布局的更新。
默认情况下,活动花费少于0.5ms被过滤掉不显示在活动序列和首要活动面板里,这样你可以专心于最花费时间的操作上。你可以点击面板左上面的过滤按钮来选择是否过滤这些小活动。
注意这里的颜色含义和总结面板里的一样,这样你可以把不同面板里的内容联系起来。在总结面板里过滤一个类别也会在这两个面板里过滤掉相应的活动。

ACTIONSCRIPT
到现在,你已经看到flash player不间断的活动,但你最关心的是可能是你的as代码在作什么。在actionscript面板里显示了这些内容。



当你初看actionscript面板,你可能看到一系列的函数的调用,为了得到说明和查看调用的栈,只需要点击展开所有按钮,它在自上而下设置的右边。



你可以向下滚动调用栈查找哪个函数最费时间,如下图,Context3D.present 的调用最费时间



默认情况下,actionscript面板显示向下而下的栈的调用,也就是入口点在栈的最上面,本地的调用在栈的最下面。反过来来看本地函数上花费了多少时间也非常有用,可以通过选择自下而上来实现。
你可以得到每个包花费多少时间的高级视图,通过打开在总结面板的actionscript分类查看。Actionscript面板已经增加了用颜色区分不同的函数。本地用深蓝表示,用户的as代码用浅蓝表示,stage3d用松石绿表示。下图展示了用颜色标志的向下而上的视图。



你也可以使用总结面板过滤你不想看到的包,下图展示了只关注invawayders 包的效果。



在自下而上的视图里,父结节是你的函数,有自身时间列指示了在全部选择的帧里(not including any calls it might make into other functions)它花费的时间。当你打开结点时你会看到自下而上的栈调用关系,它显示了这个函数里调用了哪些其它函数,每个子函数对父函数的贡献
ActionScript 面板展示了一个在帧和时间轴里所有选择的帧的actionscript代码的合计。有一点要记住,这些数据是基于统计采样的,也就是意味着你观测的数据越多,得到的更准确的结果。如果你在右边上面看到一个悲伤的小脸,意味着你需要选择更多的帧。
ActionScript 面板的另一个有用的功能是你可以在首要活动和活动序列面板进行数据交互。在这两个面板里,你可以单击一个具体的活动在actionscript面板里实现过滤。例如下图,展示了当你单击首要活动的mouseDown 事件时,它仅显示这个事件处理的内部的处理代码。



你可以过滤任何活动,不仅仅是as事件处理函数。例如,下图显示了用垃圾回收活动过滤的actionscript代码。不像一个事件,垃圾回收可以在你代码执行的过程中触发。用垃圾回收过滤让你看到哪个函数引起了垃圾回收。你可以在调用栈里看到。如果某个函数引起了过多的垃圾回收,它可能消费太多内存。



Trace log
当对actionscript代码进行采样时,scout收集trace()的输出。在帧和时间轴面板的事件面板里的跟踪事件轨展示了哪一帧执行了trace,而且如果你点击了有trace的帧,在活动序列面板里同样会显示。你也可以选任意数量的帧并在跟踪日志面板里查看全部的trace输出。



会话信息
Scout使你轻松和其它人分享数据。例如,如果你发现一个问题,你可以记录下scout会话,保存为flm文件,并把它发给你的同事帮你debug错误。像你运行在哪种机器上,你用的是哪个版本的flash,这些信息很容易就会丢失。会话信息面板呈现了这些信息。它被分为几个部分,提供详细的让scout收集的遥测数据。



显示列表渲染
你已经摸索了很多面板让你来诊断flash player和as代码正在干什么。但如果你的问题是关于渲染的呢?scout的一个亮点之一就是使你发现底层的渲染问题。
如果你在使用传统的flash 显示列表渲染,你可以在新会话设置里打开显示列表渲染详细信息选项,然后收集正在进行的详细信息。当你选择单帧时,你可以在显示列表渲染里看到。



如上面,当你选择帧时,在面板的左边有一系列正在渲染的传递并显示它花费多长时间。渲染传递并不总是恰好和边界对齐,因此你可能看到一个渲染的传递在一帧里开始,然后在下一帧结束。在一帧里,如果你看到多于一个完整的渲染传递,就是意味着你渲染过于频繁,例如你可能在不需要的时候调用updateAfterEvent()。
默认下显示列表渲染面板在热图模式下打开,这个屏幕的代表指示了哪个区域被重新渲染。最白最亮的区域是最费时间渲染的,你可以在右边的树里点选择一个对象,它会在相应的区域高亮显示出来。它给你展示了对渲染传递和每一步的花费的详细的分解。
通过切换到区域模式你可以得到渲染传递更详细的视图。如下图,屏幕上的区域被分解为四种不同的类别,flash player将它做为渲染引擎的一部分使用。明白这些分类对大幅度改善渲染的执行非常有用,例如,你不想对每一帧都改变的东西进行缓存。



区域(红色)框起来的是在屏幕上需要重绘的地方。这些信息和在debug版的flash player里 右键显示重绘区域的内容是一样的。
更新的表面(蓝色)是在这次渲染传递时要被更新的部分,表面是flash player当使用滤镜,blend mode,位图缓存和位图时不断创建的位图。
缓存的表面(黄色)是被运行时缓存的表面,因此它可能被多帧复用,仅当这个渲染传递显示时缓存被重新渲染
显示对象(绿色)是你加在显示列表里的矢量内容。再强调一遍,只有显示对你在显示时被重绘。
注意右边的活动和它是相同的颜色系统。你可以点击显示的任何一个区域,相应的在树上会相应相应的结点。如下图,在有的结节左侧会有小点,这表示这个结节会被重绘。



Stage3D渲染
如果你在开发基于gup加速的内容,你会使用新的stage3d api。使用GPU加速渲染内容在桌面方面(Adobe AIR 3.0 以上和Flash Player 11以上)和移动方面(Adobe AIR 3.2 以上)是与平台无关的。你可能在开发3d内容或使用如starling这样的将gpu用于2d内容渲染的2d框架,如果你在scout中正好打开了stage3d记录,flash player就会把每条执行到的stage3d命令传到scout里。也就是说,所有context3d对象的调用会被记录下来。Stage3d渲染面板可以一步步的重新执行这些命令



在这个面板里,你会看到所有你所选择帧里执行的stage3d命令。你可以点击任何有关draw的函数(Context3D.drawTriangles),左边的面板会立即更新显示调用这个函数后后台缓冲区的状态。按空格键会跳到下一个draw函数调用的地方,按backspace键会跳到前一个draw函数调用的地方,这使得单步调试渲染的场景非常简单。



如果你使用的是渲染到纹理(render-to-texture),然后scout会自动在后台缓冲区里显示你当前选择的渲染目标对象。
每条stage3d命令以简洁的格式显示,它带有传给命令的参数值。如果你不记得每个参数的含义,你可以右键命令选择显示参数名称。
Stage3d渲染面板可以单步调试draw函数是因为scout有在它内部正在运行的stage3d引擎的备份。Flash player运行时并没有把位图传给scout;它只是传每一条stage3d命令和程序里提供的参数,诸如程序,纹理,缓冲区这样你就可以用你的方式研究探索你的场景,调试你的内容。
线框模式,在该面板上方的工具条里打开,它仅使用重绘的三角形边显示场景的预览,这样回顾每一个对象并得知绘了什么。



要使用stage3d面板必须把允许stage3d记录选项打开,关于gpu有用信息会记录下来。对任何stage3d内容,你可以参考在总结面板里得到gpu内存会话,它也会在会话概况和帧和时间轴上打开相应的图表。



你可以看到每个场景里数量的draw方法的调用数量,并且能看到你上传的主要的gpu内存资源的分解。



Stage3d 程序编辑器
因为scout有你执行的stage3d命令的全部信息,你可以交互地修改每一条命令,然后看渲染的结果。每一次你调用Context3D.drawTriangles,你就告诉gpu运行两个程序:在屏幕上定位若干位置的vertex program ,和在每一个三角形内容进行着色的fragment program 。在stage3d 程序编辑器的帮助下,scout让你可以交互的查看和编辑这些程序。
在Stage3D渲染面板里,点击draw函数调用的地方,然后看stage3d程序编辑器,如下图,stage3d程序编辑器可以在窗口菜单里选择打开。它会显示在调用draw时供vertex 和fragment 程序使用的AGAL代码。





你可以交互的编辑这些代码,然后点上传让scout重绘场景。下图展示了这个过程。



上面头两行程序读入两个不同的纹理,最后一行将两纹理相乘来决定最后输出的像素颜色。第一个纹理(fs1)是建筑墙的砖块形,第二个纹理(fs2)是阴影。



要看程序的改变如果起作用,改变最后一行,如下,它让颜色基于第一个纹理(只显示第一个纹理)。





当你点击上传后,你会看到场景重新渲染了。你同时会看到一些命令变成purple色了,表示这些命令使用了你的修改你也可以点击重置,还原原始的状态。

你也可以这样修改,只显示第二个纹理。





这种交互能力对debug来说非常有用,你也可以使用它学习如何使用AGAL

常见问题
下面是一系列常见问题对你开始使用scout可能有帮助。

Flash player不能连接到scout
确保你的scout是最新的版本
确保你的flash player足够新
对于移动项目来说,确保你使用的是最新版的sdk 或者flash builder
对于移动项目,确保 companion app 是连着的
同时确保.telemetry.cfg 文件内容正确并且位置正确
核实scout服务正在监听。在浏览器里输入localhost:7934,如果有诸如"未收到数据","连接丢失"或其它类似的提示(因为scout不是http服务器),scout应该会显示"无法新建会话,因为telemetry数据无效"。而如果浏览器等了很长时间然后跳出"服务器未发现"之类的提示,说明scout的socket服务没在工作。检测你的防火墙设置。你也可以改变scout的端口在首先项 > 监听新会话的端口。然后scout会自动更新.telemetry.cfg文件。
如果IOS或者Android 的Scout companion app不能连接,试试如下方法。
确保你的scout companion app是最新的。
如果 companion app不能找到你的机器,看看输入ip地址能不能连接上。
查看选择其它的应用能不能连接到你的机器。你可能想在你的机器上建一个web服务器连接试试。 在mac系统,在系统首先项 > 共享,启用web共享
在windows,启用iis
在你本机上试试能不能访问本地的网站
再试试从其它设备访问

如果是从chrome里远程分析 如果在chrome里你使用的是Flash Pepper plugin(默认的是),.telemetry.cfg 文件在一个不是很好找的位置
MAC OS :
~/Library/Application Support/Google/Chrome/Default/
Pepper Data /Shockwave Flash/UserHome/.telemetry.cfg

Windows: %HOMEDRIVE%%HOMEPATH%\AppData\Local\Google\Chrome\User Data\Default\Pepper Data\Shockwave Flash\UserHome\.telemetry.cfg 等待GPU的意思 在stage3d的应用里,你的cpu和gpu必须同步才能得到你想要的帧频。如果一个负载了那个帧频就会掉下来,有如下几个可能。

GPU不能超过60fps。如果你想更新的比这快,他们就会成块。如果你在构建60fps的,对等待gpu时间不要着急
如果你的帧频一持续很低,那么就是你给gpu的负荷太大了。你需要优化的3d代码(或者在配置更好的设备上运行)。例如,试着渲染更少的三角形,使用AGAL程序,或者使用更小的纹理。这时scout不能直接显示GPU里的什么慢,因为它不能测算GPU的时间。然而,如果你打开stage3d记录并查看stage3d记录面板,你可以准备的看到哪个stage3d命令在执行,对它进行单步调试,看看他们是如果影响屏幕的。你可能能发现更有效的方式。
如果你的帧率抖动,摆动,或锯齿图案,你可能遇到关于cpu gpu同步的问题,ADOBE正在展开这项工作。
Scout崩溃或者显示错误,怎么办 如果在你保存之前崩溃了,你可以从以下的路径里恢复数据,在这里你可能发现很多的FLM文件。
Mac OS: /var/folders/… …/Adobe Performance Data
Windows: %HOMEDRIVE%%HOMEPATH%\AppData\Local\Temp\Adobe Performance Data

注意 在MAC OS,实际的位置可以变的,所以最好的方式就是在/var/folders里搜索 "Adobe Performance Data"
如果在试着打开FLM文件时Scout再次崩溃,那么你就是发现了一个bug。如果你提交你的FLM给ADOBE,我们会解决这个BUG并且会非常感激你的。
如果发生错误了,在scout log里有更多的信息。

Mac OS: ~/Library/Preferences/Adobe/Scout/1.0/logs Windows: %HOMEDRIVE%%HOMEPATH%\AppData\Roaming\Adobe\Scout\1.0\logs 下一步 现在你知道scout是如何工作和如何使用的,我鼓励你亲自用它来微调你在FLASH PLAYER 或AIR上的游戏。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: