Home
last modified time | relevance | path

Searched refs:Trace (Results 1 – 25 of 185) sorted by relevance

12345678

/ohos5.0/docs/zh-cn/application-dev/performance/
H A Ddelay_related_performance.md31 **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 Davoiding-redundant-operations.md5 …至关重要。为优化性能,开发者需在开发阶段适度增加日志以辅助调试,而在生产环境中则需避免冗余日志和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 Dapplication-performance-guide.md12 开发者可以通过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 Dlong-frame-optimization.md51 导致应用超长帧的原因非常多,可能是应用本身原因,可能是系统原因,也有可能是硬件层原因。不同卡顿原因在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 Dcommon-trace-using-instructions.md1 # 常用Trace使用指导
5Trace,其上附带了记录执行时间、运行时格式化数据、进程或线程信息等。开发者可以使用[SmartPerf-Host调试工具](../../device-dev/device-test/smart…
7 ## 常用Trace及含义
19Trace角度来看,一帧的渲染流程如下:
33 **图2 UI后端引擎渲染Trace泳道图**
53 **图3 RS侧渲染Trace泳道图**
75 **图4 懒加载Trace泳道图**
94 **图5 页面加载帧Trace泳道图**
108 ## Trace实践
243 ## 自定义Trace
[all …]
H A Dweb-analyse.md18 ### 使用Trace工具抓取Trace
23 图二 Trace起点
26 图三 Trace终点
30 图四 Trace帧率分析
114 ## 常见Trace流程点
121 | Web网页加载流程拆解 | 关键Trace |
137 通过以上步骤,使用录屏、Trace工具和Devtools分析,可以有效定位并解决点击切换类时延问题。
H A Dnode_custom_component_reusable_pool.md135 图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 Dreasonably-dispose-highly-loaded-component-render.md44 这段代码里,在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 Dkernel-small-debug-trace.md1 # 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 Dkernel-mini-memory-trace.md1 # Trace调测
11 内核提供一套Hook框架,将Hook点预埋在各个模块的主要流程中, 在内核启动初期完成Trace功能的初始化,并注册Trace的处理函数到Hook中。
13 当系统触发到一个Hook点时,Trace模块会对输入信息进行封装,添加Trace帧头信息,包含事件类型、运行的cpuid、运行的任务id、运行的相对时间戳等信息;
15 Trace提供2种工作模式,离线模式和在线模式。
28 **表1** Trace模块接口说明
32 | 启停控制 | -&nbsp;LOS_TraceStart:启动Trace<br/>-&nbsp;LOS_TraceStop:停止Trace |
33 | 操作Trace记录的数据 | -&nbsp;LOS_TraceRecordDump:输出Trace缓冲区数据<br/>-&nbsp;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 Darkts-new-observedV2-and-trace.md1 # \@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 Darkts-new-monitor.md190 // 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 Darkts-new-local.md121 @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 Darkts-new-param.md165 @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 Dsubsys-dfx-hitracemeter.md12 - 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中会以此字段展示这段
146Trace 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 Daudio_dump_pcm.cpp45 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 Darkts-new-observedV2-and-trace.md142 @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 Darkts-new-monitor.md267 @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 Duse-jsvm-about-trace.md1 # 使用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 Daudio_running_lock_manager.h37 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 Dtrace.cpp32 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 Dtrace.h26 class Trace final : public NoCopyable {
28 static Trace trace;
33 Trace();
34 ~Trace() override;
/ohos5.0/base/request/request/services/src/
H A Dtrace.rs18 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 Dtrace.h26 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 Djs-apis-StateManagement.md78 @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 …]

12345678