Перейти к основному содержимому

Трассировка V8

V8 предоставляет поддержку трассировки. Она работает автоматически, когда V8 встроен в Chrome через систему трассировки Chrome. Но вы также можете включить ее в любой автономной версии V8 или в любом приложении, использующем Default Platform. Более подробную информацию о trace-viewer можно найти здесь.

Трассировка в d8

Чтобы начать трассировку, используйте опцию --enable-tracing. V8 генерирует файл v8_trace.json, который можно открыть в Chrome. Чтобы открыть его в Chrome, перейдите по адресу chrome://tracing, нажмите «Load» и загрузите файл v8-trace.json.

Каждое событие трассировки связано с набором категорий, вы можете включить/отключить запись событий трассировки на основе их категорий. С помощью только указанного выше флага включены только категории по умолчанию (набор категорий с низкими затратами). Чтобы включить больше категорий и иметь более тонкий контроль над различными параметрами, нужно передать файл конфигурации.

Вот пример файла конфигурации traceconfig.json:

{
"record_mode": "record-continuously",
"included_categories": ["v8", "disabled-by-default-v8.runtime_stats"]
}

Пример вызова d8 с трассировкой и файлом конфигурации трассировки:

d8 --enable-tracing --trace-config=traceconfig.json

Формат конфигурации трассировки совместим с форматом Chrome Tracing, однако мы не поддерживаем регулярные выражения в списке включенных категорий, и V8 не нуждается в списке исключенных категорий. Таким образом, файл конфигурации трассировки для V8 может быть использован в Chrome Tracing, но вы не можете использовать файл конфигурации Chrome Tracing в V8, если конфигурация содержит регулярные выражения. Кроме того, V8 игнорирует список исключенных категорий.

Включение статистики вызовов времени выполнения в трассировке

Чтобы получить статистику вызовов времени выполнения (RCS), запишите трассировку с включением двух категорий: v8 и disabled-by-default-v8.runtime_stats. Каждое событие трассировки верхнего уровня V8 содержит статистику выполнения за период этого события. При выборе любого из этих событий в trace-viewer, таблица статистики выполнения отображается в нижней панели. Выбор нескольких событий создает объединенный вид.

Включение статистики объектов сборки мусора в трассировке

Для получения статистики объектов сборки мусора в трассировке вам нужно записать трассировку с включенной категорией disabled-by-default-v8.gc_stats, а также использовать следующие --js-flags:

--track_gc_object_stats --noincremental-marking

Когда вы загрузите трассировку в trace-viewer, найдите сегменты с именем: V8.GC_Object_Stats. Статистика появится в нижней панели. Выбор нескольких сегментов создает объединенный вид.