/ohos5.0/docs/zh-cn/application-dev/performance/ |
H A D | delay_related_performance.md | 31 **Trace抓取** 65 3. Trace标记了惯性滚动区间。 170 2. 分析Trace中应用主线程泳道超长帧,发现有大量组件创建和布局测算。关键Trace点信息详见“UI绘帧关键Trace点”。 221 ## 附录:场景通用Trace流程点说明 223 ### 网络关键Trace点 225 图21 网络关键Trace点 230 |序号|泳道|Trace点|描述| 238 ### UI绘制关键Trace点 240 图22 UI绘制关键Trace点 243 |序号|泳道|Trace点|描述| [all …]
|
H A D | avoiding-redundant-operations.md | 5 …至关重要。为优化性能,开发者需在开发阶段适度增加日志以辅助调试,而在生产环境中则需避免冗余日志和Trace追踪输出。还需要审查并删除无实际功能的空回调函数,确保回调有明确的目的。通过精简日志、合理… 90 ## 删除冗余Trace和日志打印 94 ### 在release版本中删除Trace 96 在release版本中,通常应当限制或移除Trace追踪功能,Trace务于开发和调试阶段,用于记录和追踪程序执行过程中的详细信息。在release版本中保留Trace可能会引入不必要的性能开销,比… 103 // Trace场景反例 120 // Trace场景正例 182 …不包含任何业务逻辑代码,可以将其删除。日志输出的影响对系统性能不容忽视。冗余的Trace和日志打印不仅增加性能开销,还降低代码的可读性和维护性,同时推高存储成本。因此,务必采取积极措施,定期审查和… 235 在处理日志打印和Trace追踪方面,冗余的操作可能会导致不必要的性能开销,增大内存占用,拖慢程序响应速度,甚至影响界面流畅度。特别是在高频触发的回调接口中,如滚动事件、触摸事件等,每次触发时如果包含… 237 为优化日志输出和Trace追踪,给出以下建议: 239 - 在正式发布版本中移除或禁用开发阶段使用的DEBUG日志输出和Trace追踪。 [all …]
|
H A D | application-performance-guide.md | 12 开发者可以通过HiTrace命令工具抓取应用刷新时的Trace信息,并通过SmartPerf Host集成性能工具分析。例如,抓取某应用发生丢帧处的Trace信息如图1,则平均帧率计算过程如下: 14 **图1 应用丢帧处的Trace数据** 18 | 计算帧率时,可参考的Trace标签 | 含义| 帧数| 平均帧率 | 43 这里以点击应用tab,做页面跳转的场景为例,通过Trace分析其完成时延。 51 **图4 system侧Trace** 61 **图5 app侧Trace** 70 **图6 RS侧Trace** 125 2. 找到 Trace中每一帧耗时的部分,大致定位是App侧问题还是RS侧问题,并结合Trace标签,初步定位原因。 143 最终,根据卡顿原因,结合业务场景和API找出适合解决方案,并用Trace等数据验证优化结果。 174 这五个阶段,对应Trace中的标签信息如下: [all …]
|
H A D | long-frame-optimization.md | 51 导致应用超长帧的原因非常多,可能是应用本身原因,可能是系统原因,也有可能是硬件层原因。不同卡顿原因在Trace中有不同表现,识别需要大量经验积累。 53 分析过程,主要是结合App主进程和RenderService渲染进程Trace数据,先排查系统、硬件是否异常,再分析应用本身原因。 56 2. 找到Trace中每一帧耗时部分,大致定位是App侧问题还是RS侧问题,并结合Trace标签,初步定位原因。 66 最终,根据卡顿原因,结合业务场景和API找出适合解决方案,并用Trace等数据验证优化结果。 72 以下图中长列表滑动丢帧场景为例,通过Trace信息,具体演示定位分析超长帧的过程。该案例以通过上述分析思路,排除系统侧原因,意在说明如何通过Trace,定位分析TS侧问题。 82 | param set persist.ace.debug.enabled 1 | 一些调试的Trace开关,包括状态变量更新的Trace | 84 | param set persist.ace.trace.layout.enabled true | 节点树布局的详细过程的Trace | 85 | param set persist.ace.trace.build.enabled 1 | 属性设置Trace的开关 | 88 …ebug开关打开后,通过SmartPerf Host工具抓取场景Trace。对于案例场景,这里采用向上抛滑3次,再向下抛滑3次的方式,并控制操作时长在10s以内。开发者在抓取Trace时,应结合上… 104 针对示例场景是长列表抛滑,为了将实际操作的动作与Trace数据打点的时间相结合,以方便问题的分段与对照定位,开发者可以收藏置顶下面两个泳道: [all …]
|
H A D | common-trace-using-instructions.md | 1 # 常用Trace使用指导 5 …Trace,其上附带了记录执行时间、运行时格式化数据、进程或线程信息等。开发者可以使用[SmartPerf-Host调试工具](../../device-dev/device-test/smart… 7 ## 常用Trace及含义 19 从Trace角度来看,一帧的渲染流程如下: 33 **图2 UI后端引擎渲染Trace泳道图** 53 **图3 RS侧渲染Trace泳道图** 75 **图4 懒加载Trace泳道图** 94 **图5 页面加载帧Trace泳道图** 108 ## Trace实践 243 ## 自定义Trace [all …]
|
H A D | web-analyse.md | 18 ### 使用Trace工具抓取Trace 23 图二 Trace起点 26 图三 Trace终点 30 图四 Trace帧率分析 114 ## 常见Trace流程点 121 | Web网页加载流程拆解 | 关键Trace | 137 通过以上步骤,使用录屏、Trace工具和Devtools分析,可以有效定位并解决点击切换类时延问题。
|
H A D | node_custom_component_reusable_pool.md | 135 图1 常规复用Trace图 283 图2 自定义组件复用池Trace图 361 3. 通过SmartPerfHost工具抓取Trace图,从图3中可以看到提前进行组件预创建后,上一章节中前两个页面的加载耗时已经缩短到了25ms左右,和第三个页面的耗时(18ms)相比差距已明显缩… 363 图3 预创建组件Trace图 369 图4 预创建组件冷启动Trace图-1 373 5. 如图5所示,将图4中的Trace进一步放大后可以看到,加载Index页面时主要耗时都是用于创建子组件(H:CustomNode:BuildItem \[SubFlowItem]\[self:4… 375 图5 预创建组件冷启动Trace图-2 399 1. 通过常规预创建抓取Trace,获取单个组件预创建耗时,示例代码中单个组件预创建耗时最长在1ms左右。 490 7. 通过SmartPerfHost工具抓取Trace图,可以查看冷启动耗时。如下图所示,加载Index页面(H:load page: pages/Index(id:1))耗时大概8ms左右,只有优… 492 图7 使用onIdle预创建组件Trace图 [all …]
|
H A D | reasonably-dispose-highly-loaded-component-render.md | 44 这段代码里,在aboutToAppear()接口中,将数据放入productData中,并通过瀑布流加载。编译运行后,可以通过Trace图看到,转场动画的首帧(235970)耗时21ms左右,这是因… 116 在这段代码中,aboutToAppear()接口中并没有一次性加载全部数据,而是将数据拆分,在帧回调中分成2次进行加载。编译运行后,通过Trace图可以看到,动画首帧(232011)的耗时是12ms… 198 …ormance-optimization-using-smartperf-host.md),开始抓取Trace,然后滑动列表到最底端,结束Trace的抓取,通过SmartPerf Host对抓取的… 303 编译运行后,使用相同的方法,查看优化后的Trace信息,如图6所示。 309 从图6中可以看到,通过代码优化后,帧率是正常的120帧了。然后将图6中的Trace结果放大后可以看到图7,RenderService层出现的延长帧(Actual Timeline(render_se… 321 继续看后面的Trace信息,如图9所示。和前一帧(211621)一样,此帧中更新了5天的日期数据,并且会重新测量上一帧(211621)中更新数据的5个Text组件尺寸(箭头1),而其余的组件由于数据… 377 A:并不会,通过示例中的Trace图可以看到,除了正在被复用的ItemView的DisplaySync的回调监听外,其余的监听耗时非常短,对性能的影响可以忽略不计。如图10所示。 383 **Q:为什么抓取到的Trace中没有示例中那么多的标签?**
|
/ohos5.0/docs/zh-cn/device-dev/kernel/ |
H A D | kernel-small-debug-trace.md | 1 # Trace调测 11 内核提供一套Hook框架,将Hook点预埋在各个模块的主要流程中, 在内核启动初期完成Trace功能的初始化,并注册Trace的处理函数到Hook中。 13 当系统触发到一个Hook点时,Trace模块会对输入信息进行封装,添加Trace帧头信息,包含事件类型、运行的cpuid、运行的任务id、运行的相对时间戳等信息; 15 Trace提供2种工作模式,离线模式和在线模式。 31 **表1** Trace模块接口说明 35 | 启停控制 | LOS_TraceStart:启动Trace<br/>LOS_TraceStop:停止Trace | 36 | 操作Trace记录的数据 | LOS_TraceRecordDump:输出Trace缓冲区数据<br/>LOS_TraceRecordGet:获取Trace缓冲区的首地址<br/>LOS_Tra… 122 - read: 用户态读取Trace记录数据 148 开启Trace调测的典型流程如下: 150 1. 配置Trace模块相关宏。 [all …]
|
H A D | kernel-mini-memory-trace.md | 1 # Trace调测 11 内核提供一套Hook框架,将Hook点预埋在各个模块的主要流程中, 在内核启动初期完成Trace功能的初始化,并注册Trace的处理函数到Hook中。 13 当系统触发到一个Hook点时,Trace模块会对输入信息进行封装,添加Trace帧头信息,包含事件类型、运行的cpuid、运行的任务id、运行的相对时间戳等信息; 15 Trace提供2种工作模式,离线模式和在线模式。 28 **表1** Trace模块接口说明 32 | 启停控制 | - LOS_TraceStart:启动Trace<br/>- LOS_TraceStop:停止Trace | 33 | 操作Trace记录的数据 | - LOS_TraceRecordDump:输出Trace缓冲区数据<br/>- LOS_TraceRecordGet:获取Trace缓冲区的首… 94 - 如果仅需要简易插桩事件,通过设置Trace Mask为TRACE_MAX_FLAG即可。 122 开启Trace调测的典型流程如下: 124 1. 配置Trace模块相关宏。 [all …]
|
/ohos5.0/docs/zh-cn/application-dev/quick-start/ |
H A D | arkts-new-observedV2-and-trace.md | 1 # \@ObservedV2装饰器和\@Trace装饰器:类属性变化观测 17 - \@ObservedV2装饰器与\@Trace装饰器需要配合使用,单独使用\@ObservedV2装饰器或\@Trace装饰器没有任何作用。 145 @Trace age: number = 100; 235 @Trace age: number = 8; 446 \@Trace支持在类的继承场景中使用,无论是在基类还是继承类中,只有被\@Trace装饰的属性才具有被观测变化的能力。 457 @Trace age: number = 0; 521 ### \@Trace装饰基础类型的数组 625 ### \@Trace装饰对象数组 695 ### \@Trace装饰Map类型 749 ### \@Trace装饰Set类型 [all …]
|
H A D | arkts-new-monitor.md | 190 // name被@Trace装饰,能够监听变化 195 // age未被@Trace装饰,不能监听变化 270 @Trace name: string; 315 @Trace name: string; 316 @Trace age: number; 408 @Trace person: Person; 423 @Trace name: string; 424 @Trace age: number; 819 @Trace age: number; 890 @Trace age: number; [all …]
|
H A D | arkts-new-local.md | 121 @Trace name: string; 186 - 当装饰的变量是嵌套类或对象数组时,\@Local无法观察深层对象属性的变化。对深层对象属性的观测依赖\@ObservedV2与\@Trace装饰器。 191 @Trace x: number; 192 @Trace y: number; 200 @Trace region: Region; 201 @Trace name: string; 226 // 由于属性name被@Trace装饰,所以能够观察到 236 // 由于属性x、y被@Trace装饰,所以能够观察到 300 | 观察能力 | 能观测变量本身以及一层的成员属性,无法深度观测。 | 能观测变量本身,深度观测依赖\@Trace装饰器。 | 312 @Trace name: string; [all …]
|
H A D | arkts-new-param.md | 165 @Trace name: string; 270 @Trace x: number; 271 @Trace y: number; 279 @Trace region: Region; 280 @Trace name: string; 411 @Trace name: string; 459 @Trace x: number; 460 @Trace y: number; 468 @Trace name: string; 469 @Trace age: number; [all …]
|
/ohos5.0/docs/zh-cn/device-dev/subsystems/ |
H A D | subsys-dfx-hitracemeter.md | 12 - Trace数据采集命令行工具; 13 - Trace数据图形分析工具。 15 其中,前两者运行在设备端侧,图形工具运行在PC主机侧。打点API部分提供了C++和JS接口,供开发过程中打点使用,打点用于产生Trace数据流,是抓Trace数据的基础条件。 17 命令行工具用于采集Trace数据,用来抓取Trace数据流并保存到文本文件。 19 Trace数据分析可以在图形工具中人工分析,也可以使用分析脚本自动化分析,Trace分析工具以Trace命令行工具的采集结果数据文件为输入。 119 … limit = -1); | 开启异步trace | label: Trace category。<br />value: Trace携带的信息,表明当前的某种状态,例如内存大小,队列长短等。<… 120 … | 关闭异步trace | label: Trace category。<br />value: Trace携带的信息,表明当前的某种状态,例如内存大小,队列长短等。<… 130 … std::string& name, int64_t); | 计数trace | label: Trace category。<br />name: Trace的名称,IDE中会以此字段展示这段… 146 …Trace value传入参数,目前HiTraceMeter支持的Trace Tag在基本概念hitrace_meter.h中都已列出,我们以OHOS这个Tag为例,假设我们需要获取func1,f… 173 4. 使用方法,打点编译部署完成后,运行下面命令行来抓取Trace。然后在端侧shell里运行应用,可以抓取到Trace数据。 [all …]
|
/ohos5.0/foundation/multimedia/audio_framework/services/audio_service/common/src/ |
H A D | audio_dump_pcm.cpp | 45 Trace trace("MemChunk::MemChunk"); in MemChunk() 57 Trace trace("MemChunk::~MemChunk"); in ~MemChunk() 67 Trace trace("MemChunk::GetMemBlock"); in GetMemBlock() 107 Trace trace("MemChunk::Reset"); in Reset() 125 Trace trace("AudioCacheMgrInner::AudioCacheMgrInner"); in AudioCacheMgrInner() 152 Trace trace("AudioCacheMgrInner::DeInit"); in DeInit() 175 Trace trace("AudioCacheMgrInner::CacheData"); in CacheData() 220 Trace::Count("UsedMemChunk", memChunkDeque_.size()); in GetAvailableMemBlock() 250 Trace trace("AudioCacheMgrInner::DumpAllMemBlock"); in DumpAllMemBlock() 284 Trace trace("AudioCacheMgrInner::GetCacheDuration"); in GetCachedDuration() [all …]
|
/ohos5.0/docs/en/application-dev/quick-start/ |
H A D | arkts-new-observedV2-and-trace.md | 142 @Trace age: number = 100; 170 @Trace name: string = "Tom"; 196 @Trace static count: number = 1; 232 @Trace age: number = 8; 311 @Trace name: string = "Tom"; 312 @Trace age: number = 25; 348 @Trace name: string = "Tom"; 349 @Trace age: number = 25; 454 @Trace age: number = 0; 529 @Trace numberArr: number[] = []; [all …]
|
H A D | arkts-new-monitor.md | 267 @Trace name: string; 312 @Trace name: string; 313 @Trace age: number; 405 @Trace person: Person; 420 @Trace name: string; 421 @Trace age: number; 531 @Trace t1: number = 0; 532 @Trace t2: number = 0; 816 @Trace age: number; 887 @Trace age: number; [all …]
|
/ohos5.0/docs/zh-cn/application-dev/napi/ |
H A D | use-jsvm-about-trace.md | 1 # 使用JSVM-API接口进行Trace相关开发 9 在JSVM-API中,Trace相关接口能够通过指定一系列分类,采集这些分类所属的JSVM内部事件信息,最后以JSON格式,按用户指定回调函数进行输出。 11 在JSVM-API中,通过支持Trace相关能力,JSVM模块能够更紧密地与JavaScript环境集成,加深用户对JSVM的理解,提高复杂问题的定位能力与性能分析能力。 24 ### 使用Trace接口进行数据采集 39 static JSVM_Value Trace(JSVM_Env env, JSVM_CallbackInfo info) { 64 OH_LOG_INFO(LOG_APP, "JSVM Trace success:%{public}s", data.c_str()); 67 // Trace注册回调 69 {.data = nullptr, .callback = Trace}, 72 // Trace方法别名,供JS调用
|
/ohos5.0/foundation/multimedia/audio_framework/frameworks/native/hdiadapter/common/include/ |
H A D | audio_running_lock_manager.h | 37 Trace traceLock("AudioRunningLockManager:Lock"); in Lock() 41 Trace traceRunningLock("AudioRunningLockManager:runningLock_->Lock"); in Lock() 53 Trace traceUnlock("AudioRunningLockManager:UnLock"); in UnLock() 59 Trace traceUpdateWorkSource("AudioRunningLockManager:runningLock_->UpdateWorkSource"); in UnLock() 62 Trace traceRunningUnlock("AudioRunningLockManager:runningLock_->UnLock"); in UnLock() 71 Trace trace("AudioRunningLockManager:UpdateAppsUid"); in UpdateAppsUid() 81 Trace trace("AudioRunningLockManager:UpdateAppsUidToPowerMgr"); in UpdateAppsUidToPowerMgr() 98 Trace traceUpdateWorkSource("AudioRunningLockManager:runningLock_->UpdateWorkSource"); in UpdateAppsUidToPowerMgr()
|
/ohos5.0/base/useriam/user_auth_framework/services/context/src/ |
H A D | trace.cpp | 32 Trace Trace::trace; 34 Trace::Trace() in Trace() function in OHOS::UserIam::UserAuth::Trace 42 Trace::~Trace() in ~Trace() 46 void Trace::ProcessCredChangeEvent(const ContextCallbackNotifyListener::MetaData &metaData, TraceFl… in ProcessCredChangeEvent() 79 void Trace::ProcessCredManagerEvent(const ContextCallbackNotifyListener::MetaData &metaData, TraceF… in ProcessCredManagerEvent() 105 void Trace::ProcessUserAuthEvent(const ContextCallbackNotifyListener::MetaData &metaData, TraceFlag… in ProcessUserAuthEvent() 154 void Trace::ProcessUserAuthFwkEvent(const ContextCallbackNotifyListener::MetaData &metaData, TraceF… in ProcessUserAuthFwkEvent()
|
/ohos5.0/base/useriam/user_auth_framework/services/context/inc/ |
H A D | trace.h | 26 class Trace final : public NoCopyable { 28 static Trace trace; 33 Trace(); 34 ~Trace() override;
|
/ohos5.0/base/request/request/services/src/ |
H A D | trace.rs | 18 pub(crate) struct Trace; struct 20 impl Trace { implementation 31 impl Drop for Trace { implementation
|
/ohos5.0/foundation/graphic/graphic_2d/rosen/modules/texgine/export/texgine/utils/ |
H A D | trace.h | 26 class Trace { 57 Trace::Start(proc); in ScopedTrace() 74 Trace::Finish(); in Finish()
|
/ohos5.0/docs/zh-cn/application-dev/reference/apis-arkui/ |
H A D | js-apis-StateManagement.md | 78 @Trace p: number = 0; 349 @Trace id: number = 0; 355 @Trace sampleClass: SampleClass = new SampleClass(); 411 @Trace id: number = 0; 417 @Trace sampleClass: SampleClass = new SampleClass(); 461 @Trace id: number = 0; 469 @Trace sampleChild: SampleChild = new SampleChild(); 525 @Trace id: number = 0; 534 @Trace sampleChild: SampleChild = new SampleChild(); 583 @Trace id: number = 0; [all …]
|