From 2b3e3fd0e9b116509f7f1370f43c9e9108e3159b Mon Sep 17 00:00:00 2001 From: shanghuanni Date: Mon, 13 Mar 2023 11:57:11 +0800 Subject: [PATCH] =?UTF-8?q?hitracemeter=E6=A6=82=E8=BF=B0=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=BC=80=E5=8F=91=E6=AD=A5=E9=AA=A4=E5=92=8C=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E5=AE=9E=E4=BE=8B=E5=86=97=E4=BD=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: shanghuanni --- .../subsystems/subsys-dfx-hitracemeter.md | 43 ++++++------------- 1 file changed, 14 insertions(+), 29 deletions(-) diff --git a/zh-cn/device-dev/subsystems/subsys-dfx-hitracemeter.md b/zh-cn/device-dev/subsystems/subsys-dfx-hitracemeter.md index c4ac1bf550..18c25e93d6 100644 --- a/zh-cn/device-dev/subsystems/subsys-dfx-hitracemeter.md +++ b/zh-cn/device-dev/subsystems/subsys-dfx-hitracemeter.md @@ -144,34 +144,9 @@ C++接口仅系统开发者使用,JS(目前暂未开放js接口)应用开 #include "hitrace_meter.h"//接口函数定义头文件 ``` -3. 接口调用,将需要跟踪的Trace value传入参数,在shell中执行hitrace命令后会自动抓取Trace数据,抓到的Trace数据中包括了函数调用过程以及调用过程消耗的内存和时间,可用于分析代码调用流程,代码性能问题。 +3. 接口调用,需将要跟踪的Trace value传入参数,目前HiTraceMeter支持的Trace Tag在基本概念hitrace_meter.h中都已列出,我们以OHOS这个Tag为例,假设我们需要获取func1,func2函数的Trace数据,参考下面实例,在shell中执行hitrace命令后会自动抓取Trace数据,抓到的Trace数据中包括了函数调用过程以及调用过程消耗的内存和时间,可用于分析代码调用流程,代码性能问题。 - ```cpp - - CountTrace(label, "count number", 2000); // 整数跟踪 - - StartTrace(label, "func1Trace", -1); // func1Start的跟踪起始点 - - FinishTrace(label); // func1Trace的结束点 - - StartAsyncTrace(label, "asyncTrace1", 1234); // 异步asyncTrace1的开始点 - - FinishAsyncTrace(label, "asyncTrace2", 3456); // 异步asyncTrace2的结束点 - ``` - -4. 使用方法,打点编译部署完成后,运行下面命令行来抓取Trace。然后在端侧shell里运行应用,可以抓取到Trace数据。 - - ``` - hdc_std shell hitrace -t 10 ohos > .\myapp_demo.ftrace - ``` - - 抓取之后的数据可以在smartperf中"Open trace file"或者直接拖入图形区打开,关于smartperf的详细介绍可查看 [smartperf](https://toscode.gitee.com/openharmony-sig/smartperf) 。 - -## 开发示例 - -目前HiTraceMeter支持的Trace Tag在基本概念hitrace_meter.h中都已列出,我们以OHOS这个Tag为例,假设我们需要获取func1,func2函数的Trace数据,则一个使用示例如下: - ```cpp #include "hitrace_meter.h" // 包含hitrace_meter.h using namespace std; @@ -189,11 +164,21 @@ int main() FinishTrace(label); // func2Trace的结束点 sleep(1); FinishTrace(label); // func1Trace的结束点 - + + StartAsyncTrace(label, "asyncTrace1", 1234); // 异步asyncTrace1的开始点 + FinishAsyncTrace(label, "asyncTrace1", 1234); // 异步asyncTrace2的结束点 + return 0; - } -``` + } + ``` +4. 使用方法,打点编译部署完成后,运行下面命令行来抓取Trace。然后在端侧shell里运行应用,可以抓取到Trace数据。 + + ``` + hdc_std shell hitrace -t 10 ohos > .\myapp_demo.ftrace + ``` + + 抓取之后的数据可以在smartperf中"Open trace file"或者直接拖入图形区打开,关于smartperf的详细介绍可查看 [smartperf](https://toscode.gitee.com/openharmony-sig/smartperf) 。 ## 调测验证 -- GitLab