Pular para o conteúdo principal

Rastreando o V8

O V8 oferece suporte para rastreamento. Ele funciona automaticamente quando o V8 está incorporado no Chrome através do sistema de rastreamento do Chrome. Mas você também pode habilitá-lo em qualquer V8 standalone ou dentro de um incorporador que usa a Plataforma Padrão. Mais detalhes sobre o trace-viewer podem ser encontrados aqui.

Rastreamento no d8​

Para começar o rastreamento, use a opção --enable-tracing. O V8 gera um arquivo v8_trace.json que você pode abrir no Chrome. Para abrir no Chrome, vá para chrome://tracing, clique em “Carregar” e então carregue o arquivo v8-trace.json.

Cada evento de rastreamento está associado a um conjunto de categorias, você pode habilitar/desabilitar o registro de eventos de rastreamento com base em suas categorias. Somente com a flag acima, habilitamos apenas as categorias padrões (um conjunto de categorias que possui baixa sobrecarga). Para habilitar mais categorias e ter um controle mais fino dos diferentes parâmetros, você precisa passar um arquivo de configuração.

Aqui está um exemplo de um arquivo de configuração traceconfig.json:

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

Um exemplo de chamada ao d8 com rastreamento e um arquivo traceconfig:

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

O formato de configuração de rastreamento é compatível com o do Chrome Tracing, no entanto, não suportamos expressões regulares na lista de categorias incluídas, e o V8 não precisa da lista de categorias excluídas; portanto, o arquivo de configuração de rastreamento para o V8 pode ser reutilizado no Chrome tracing, mas você não pode reutilizar o arquivo de configuração de rastreamento do Chrome no V8 tracing se o arquivo de configuração de rastreamento contiver expressões regulares; além disso, o V8 ignora a lista de categorias excluídas.

Habilitando Estatísticas de Chamadas de Runtime no rastreamento​

Para obter Estatísticas de Chamadas de Runtime (RCS), registre o rastreamento com as seguintes duas categorias habilitadas: v8 e disabled-by-default-v8.runtime_stats. Cada evento de rastreamento de nível superior do V8 contém as estatísticas de tempo de execução para o período desse evento. Ao selecionar qualquer um desses eventos em trace-viewer, a tabela de estatísticas de runtime é exibida no painel inferior. Selecionar vários eventos cria uma visualização mesclada.

Habilitando Estatísticas de Objetos do GC no rastreamento​

Para obter as Estatísticas de Objetos do GC no rastreamento, você precisa coletar um rastreamento com a categoria disabled-by-default-v8.gc_stats habilitada e também usar as seguintes --js-flags:

--track_gc_object_stats --noincremental-marking

Uma vez que você carrega o rastreamento no trace-viewer, procure por pedaços nomeados: V8.GC_Object_Stats. As estatísticas aparecem no painel inferior. Selecionar vários pedaços cria uma visualização mesclada.