• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# 使用HiSmartPerf采集V8 trace
2<!--Kit: NDK Development-->
3<!--Subsystem: arkcompiler-->
4<!--Owner: @yuanxiaogou; @string_sz-->
5<!--Designer: @knightaoko-->
6<!--Tester: @test_lzz-->
7<!--Adviser: @fang-jinxu-->
8
9## 简介
10
11V8的trace是V8引擎提供的一种用于分析和调试JavaScript代码执行过程的工具。它可以记录并输出关于代码执行的详细信息,包括函数调用、执行时间、内存使用情况等,帮助开发者了解代码的性能、诊断潜在问题,进行优化。
12
13HiSmartPerf目前已经对接了V8的compile、runtime、builtin、JS_Execution类别的trace点,可以在HiSmartPerf中直接看到这些类别event的相关信息。
14
15## 使用方法
16
17### 默认状态
18V8是否采集trace由运行时开关“web.debug.rcs”控制,默认状态下该开关为关闭状态。启动web场景,在hilog中可以观察到有“RCS is off”日志打印输出。
19
20### 采集V8 trace
211. 要采集V8的trace,需要在启动web场景前,打开“web.debug.rcs”开关。在启动web场景前,执行以下命令:
22
23``` shell
24hdc shell setenforce 0
25hdc shell param set web.debug.rcs true
26```
272. 启动web场景,可以看到hilog中有“RCS is on”的日志打印输出
283. 使用hitrace工具抓取对应场景的trace,hitrace使用方法可参考[hitrace](../dfx/hitrace.md)使用指导文档。
294. 使用HiSmartPerf工具解析抓取到的trace,可以看到有“RCS_”前缀的trace点,即为V8对接到HiSmartPerf中的trace点。
305. 要查看compile、runtime、builtin、JS_Execution不同类别的trace数据,可使用以下关键字进行过滤:
31- compile:RCS_v8.compile
32- runtime:RCS_V8.Runtime
33- Builtin:RCS_v8.runtime_V8.Builtin
34- JS_Execution:RCS_JS_Execution