UWA Gears:Frame Capture事件浏览器之事件筛选
- 作者:admin
- /
- 时间:昨天 10:21
- /
- 浏览:51 次
- /
- 分类:万象更新
UWA Gears 是UWA最新发布的无SDK性能分析工具。针对移动平台,提供了实时监测和截帧分析功能,帮助您精准定位性能热点,提升应用的整体表现。
经常有朋友问,我们怎么在事件浏览器众多事件中快速找到我们想要分析的目标事件呢?答案就是使用事件筛选功能。本文将详细介绍事件浏览器的事件筛选功能,包括基础筛选表达式和筛选函数的使用方法,帮助大家高效完成性能分析和调试工作。
基础筛选表达式的使用方法
筛选表达式是用于对事件进行高效筛选和精确定位的重要工具,它支持通过简单的字符串匹配来快速过滤出符合要求的目标事件。
以下是常用的几种基础筛选表达式的写法:
1. Rock Skydome Fort
该表达式将会匹配包含Rock、Skydome或Fort中任意一个术语的事件。
例:Rock()和Rock_01()都会匹配Rock这个术语,即使它们都不匹配Skydome或Fort术语,也会被筛选出来。而Master() 则会被过滤掉,因为它与我们表达式中的任意一个术语都不匹配。
2. Rock Skydome -01
当我们需要排除特定术语时,我们可以在术语前添加“-”来实现。那么该表达式将会匹配包含Rock、Skydome或Fort中任意一个术语,且过滤掉包含01术语的事件。
例:Rock_00()和Skydome_02()这两个事件都会被筛选出来,因为它们分别匹配了Rock和Skydome这两个术语,且事件没有包含01术语。Rock_Skydome_01()事件则会被过滤,即使该事件匹配了Rock和Skydome这两个术语,但是同时匹配了-01这个排除条件,所以该事件不会被筛选出来。
3. +Rock +MASTER -a2
当我们需要更准确地筛选事件时,我们可以在术语前添加“+”来使指定术语变为必须匹配的术语。那么该表达式则要求事件必须匹配Rock和MASTER这两个术语,同时不能匹配a2这个术语。
例:Rock_MASTER_a1()事件可以被匹配,因为该事件满足所有的匹配条件。但是Rock_a1()这个事件不能被匹配,虽然该事件匹配了Rock这个术语,但是并未匹配MASTER术语。同理,Rock_MASTER_a2()事件也会被过滤掉,虽然该事件同时匹配了两个必需的术语,但是也同时匹配了被排除的术语。
4. +Rock +(01a2 02e) -01e
当我们需要至少匹配多个条件之一时,我们可以使用括号“()”将多个匹配术语包含进去。那么该表达式则要求事件必须匹配Rock这个术语,并且至少匹配01a2和02e这两个术语的其中一个,同时不能匹配01e术语。
例:Rock_01a2()和Rock_02e()这两个事件都可以被匹配,因为它们匹配了必需术语Rock,并且满足了01a2和02e这两个术语的其中一个,同时不包含01e这个术语。而Rock_a_022()这个事情则不会被匹配,虽然该事件匹配了必需术语Rock,但是没有匹配01a2和02e这两个术语的任何一个。
筛选函数的使用方法
上边的筛选表达式使用的是简单的字符串进行匹配,基本上已经能够满足大家日常的使用场景。但有时大家可能需要更复杂的查询,便可以使用筛选函数,更灵活地通过属性进行查询操作。
1. 筛选函数
默认的$action()筛选函数会匹配所有操作事件,例如draws、dispatches、copies、clears等操作。同时,筛选函数还有$childOf(),$dispatch(),$param(),$parent(),$regex()。
$childOf():筛选子事件或者深层次嵌套的孙事件。
$dispatch():筛选GPU计算着色器调度的分发事件。
$param():筛选具有特定参数或属性的事件。
$parent():筛选特定父级标记范围下的事件。
$regex():筛选指定的正则表达式匹配的事件。
2. 包含参数的筛选函数
部分筛选函数不仅可以单独使用,同时也可以接受参数。
例如我们可以使用$action()筛选出超过4000个索引或顶点的绘制操作。
表达式写法:$action(numIndices > 4000)
3. 组合使用筛选函数
同一个表达式中也可以组合使用多个筛选函数,避免无关信息干扰分析,提高筛选结果的准确性。
例如我们现在需要筛选出父级为“MobileBasePass”下超过2000个顶点的绘制操作。
表达式写法:+$action(numIndices > 2000) +$parent(MobileBasePass)
通过这篇文章,大家可以发现筛选表达式的编写并不困难,只要灵活地编写合适的筛选表达式,就能够帮助我们在分析性能问题时事半功倍。
如果您在使用过程中遇到任何问题,可以通过UWA官方QQ群找到我们,或者前往问答社区进行提问,我们将竭诚为您提供支持。
QQ群:793972859
问答社区链接:https://answer.uwa4d.com