Трассировка 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
. Статистика появится в нижней панели. Выбор нескольких сегментов создает объединенный вид.