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