V8 跟踪
V8 提供跟踪支持。它 在 V8 通过 Chrome 跟踪系统嵌入到 Chrome 中时自动工作。但您也可以在任何独立的 V8 或使用默认平台的嵌入器中启用它。有关跟踪查看器的更多详细信息,请参见 此处。
在 d8
中跟踪 #
要开始跟踪,请使用 --enable-tracing
选项。V8 生成一个 v8_trace.json
文件,您可以在 Chrome 中打开它。要在 Chrome 中打开它,请转到 chrome://tracing
,单击“加载”,然后加载 v8-trace.json
文件。
每个跟踪事件都与一组类别相关联,您可以根据其类别启用/禁用跟踪事件的记录。仅使用上述标志,我们只启用了默认类别(一组开销较低的类别)。要启用更多类别并对不同的参数进行更精细的控制,您需要传递一个配置文件。
以下是一个配置文件 traceconfig.json
的示例
{
"record_mode": "record-continuously",
"included_categories": ["v8", "disabled-by-default-v8.runtime_stats"]
}
使用跟踪和 traceconfig 文件调用 d8
的示例
d8 --enable-tracing --trace-config=traceconfig.json
跟踪配置格式与 Chrome 跟踪的格式兼容,但是,我们不支持包含类别列表中的正则表达式,并且 V8 不需要排除类别列表,因此 V8 的跟踪配置文件可以在 Chrome 跟踪中重复使用,但如果您不能重复使用 Chrome 跟踪配置文件在 V8 跟踪中,如果跟踪配置文件包含正则表达式,此外,V8 会忽略排除类别列表。
在跟踪中启用运行时调用统计信息 #
要获取运行时调用统计信息 (RCS),请使用以下两个类别启用跟踪记录:v8
和 disabled-by-default-v8.runtime_stats
。每个顶级 V8 跟踪事件都包含该事件期间的运行时统计信息。通过在 trace-viewer
中选择任何这些事件,运行时统计信息表将显示在下部面板中。选择多个事件将创建一个合并视图。
在跟踪中启用 GC 对象统计信息 #
要在跟踪中获取 GC 对象统计信息,您需要使用 disabled-by-default-v8.gc_stats
类别启用跟踪收集,还需要使用以下 --js-flags
--track_gc_object_stats --noincremental-marking
在 trace-viewer
中加载跟踪后,搜索名为 V8.GC_Object_Stats
的切片。统计信息将显示在下部面板中。选择多个切片将创建一个合并视图。