Como Perfilar o Carregamento de Documentos do Word com Diagnóstico ETW do Visual Studio
🔍 WiseChecker

Como Perfilar o Carregamento de Documentos do Word com Diagnóstico ETW do Visual Studio

Quando um documento do Word leva vários segundos para abrir, solucionar o atraso pode ser difícil porque o Word não mostra o que está acontecendo internamente. Você pode usar o diagnóstico Event Tracing for Windows do Visual Studio para capturar uma linha do tempo de cada operação que o Word realiza durante o carregamento do documento. Este artigo explica como configurar uma sessão de perfilamento ETW no Visual Studio, anexá-la ao Word e interpretar os dados de rastreamento para identificar o gargalo. Ao final, você será capaz de identificar qual add-in, recurso ou recurso está causando o carregamento lento.

Principais Conclusões: Perfilando o Carregamento de Documentos do Word com ETW no Visual Studio

  • Performance Profiler do Visual Studio > Provedor ETW > Microsoft-Windows-Word-Application: Captura um rastreamento detalhado de eventos da inicialização e carregamento de documentos do Word.
  • Diagnostics Hub no Visual Studio 2022: A ferramenta para iniciar, parar e salvar uma sessão de perfilamento sem modificar o Word.
  • Linha do Tempo de Uso da CPU + Eventos: As duas principais visualizações usadas para correlacionar operações lentas com eventos específicos do Word, como AddInLoad ou DocumentOpen.

ADVERTISEMENT

Como o Diagnóstico ETW Funciona com o Word

Event Tracing for Windows é um sistema de registro em nível de kernel integrado ao Windows. O Visual Studio pode consumir eventos ETW de qualquer aplicativo que registre provedores de eventos. O Word registra o provedor Microsoft-Windows-Word-Application durante sua inicialização. Quando você habilita este provedor no Performance Profiler do Visual Studio, cada operação significativa que o Word realiza — como carregar add-ins, analisar XML do documento, renderizar páginas ou buscar conteúdo vinculado — é registrada como um evento com carimbo de data/hora e duração.

Antes de começar, certifique-se de ter o Visual Studio 2022 ou posterior instalado na mesma máquina onde o Word é executado. Você não precisa do código-fonte ou símbolos do Word. A sessão de perfilamento funciona com qualquer versão comercial do Word para Microsoft 365 ou Word 2021. Você também precisa de direitos de administrador na máquina para iniciar uma sessão ETW.

Passos para Perfilar o Carregamento de Documentos do Word

  1. Feche todas as instâncias do Word
    Certifique-se de que nenhum processo do Word esteja em execução. Abra o Gerenciador de Tarefas e finalize qualquer processo WINWORD.EXE para garantir uma linha de base limpa.
  2. Abra o Visual Studio e inicie o Performance Profiler
    No Visual Studio, vá em Depurar > Performance Profiler ou pressione Alt+F2. O Diagnostics Hub é aberto.
  3. Selecione o provedor ETW para o Word
    Na janela do Performance Profiler, clique em Alterar Destino e escolha Aplicativo de Inicialização. Navegue até o executável do Word (geralmente C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE). Em seguida, clique em Desmarcar todos e habilite apenas Uso da CPU e Provedor ETW. Clique no ícone de engrenagem ao lado de Provedor ETW, adicione Microsoft-Windows-Word-Application e defina o nível de rastreamento como Detalhado.
  4. Configure o documento a ser carregado
    Ainda nas configurações do Provedor ETW, em Argumentos de Linha de Comando, insira o caminho completo para o documento lento entre aspas. Por exemplo: “C:\Usuários\SeuNome\Documentos\RelatorioLento.docx”. Isso força o Word a carregar esse arquivo imediatamente após a inicialização.
  5. Inicie a sessão de perfilamento
    Clique em Iniciar. O Visual Studio inicia o Word, que então abre o documento especificado. Aguarde até que o documento esteja totalmente carregado e renderizado. Não interaja com o Word até que o carregamento seja concluído.
  6. Pare a sessão de perfilamento
    Após o documento estar aberto, volte ao Visual Studio e clique em Parar Coleta. A sessão de diagnóstico é encerrada e um arquivo .diagsession é salvo automaticamente.
  7. Analise a linha do tempo e os eventos
    No Diagnostics Hub, a guia Uso da CPU mostra uma linha do tempo da atividade da CPU. Mude para a guia Eventos. Você verá uma lista de eventos ETW do Word. Procure eventos com o nome de tarefa DocumentOpen, AddInLoad, FileRead ou Rendering. Classifique por Duração decrescente para encontrar a operação mais lenta.
  8. Identifique o gargalo
    Clique duas vezes em um evento de longa duração. O painel de detalhes mostra a carga do evento, incluindo o nome do add-in ou o caminho do arquivo envolvido. Por exemplo, um evento AddInLoad com duração de 8000 ms indica um add-in COM lento. Um evento FileRead com grande tamanho de E/S aponta para uma imagem incorporada grande ou objeto OLE.

ADVERTISEMENT

Problemas Comuns ao Perfilar o Word com ETW

Nenhum Evento do Word Aparece na Guia Eventos

Se a guia Eventos estiver vazia, o provedor ETW não foi habilitado corretamente. Volte às configurações do Provedor ETW e verifique se Microsoft-Windows-Word-Application está listado e o nível de rastreamento é Detalhado. Confirme também que você iniciou o Word a partir do Performance Profiler, não manualmente. Se você iniciou o Word manualmente, o provedor ETW não será anexado.

A Sessão de Perfilamento Falha ao Iniciar

Isso geralmente acontece quando outra sessão ETW já está em execução. Abra um prompt de comando como administrador e execute logman stop -ets para parar todas as sessões ETW ativas. Em seguida, tente novamente a sessão de perfilamento no Visual Studio.

Documento Abre Muito Rápido para Ser Capturado

Se o documento carregar em menos de dois segundos, os eventos ETW podem ser muito curtos para aparecer na visualização padrão. Na guia Eventos, clique no botão Filtrar e defina a duração mínima como 0 ms. Em seguida, classifique por carimbo de data/hora para ver todos os eventos. Alternativamente, carregue um documento muito maior, com muitas páginas, imagens ou alterações controladas para produzir eventos mais longos.

Perfilamento ETW do Visual Studio vs Ferramentas de Diagnóstico Internas do Word

Item Perfilamento ETW do Visual Studio Modo de Segurança do Word / Visualizador de Eventos
Granularidade Detalhamento em nível de evento com carimbos de submilissegundo Apenas códigos de erro de alto nível ou eventos genéricos lentos
Identificação de add-ins Mostra o nome exato do add-in e a duração do carregamento Requer desabilitar manualmente um por um
Sobrecarga de desempenho Mínima (menos de 5% de impacto na CPU) Nenhuma sobrecarga, mas sem dados de linha do tempo
Complexidade de configuração Requer Visual Studio e direitos de administrador Nenhuma ferramenta extra necessária
Melhor para Análise aprofundada de carregamento lento de documentos, conflitos de add-ins ou atrasos de renderização Verificação rápida de modelos corrompidos ou problemas básicos de inicialização

O perfilamento ETW do Visual Studio fornece a sequência exata e a duração de cada operação durante o carregamento do documento. O Modo de Segurança do Word ou o Visualizador de Eventos apenas relatam que algo deu errado, mas não o que causou. Use ETW quando precisar provar qual componente está lento.

Agora você pode perfilar qualquer problema de carregamento de documento do Word usando o diagnóstico ETW do Visual Studio. A linha do tempo de eventos mostra exatamente qual add-in, leitura de arquivo ou operação de renderização leva mais tempo. Após identificar o gargalo, desabilite o add-in problemático ou reduza o tamanho do documento. Para perfilamento repetido, salve o arquivo .diagsession e compare rastreamentos entre um documento rápido e um lento para isolar a diferença. Para estender esta técnica, habilite o provedor Microsoft-Windows-Word-Application em uma máquina remota usando o Depurador Remoto do Visual Studio para perfilar o Word no computador de um usuário sem instalar o Visual Studio localmente.

ADVERTISEMENT