O Windows fornece Contadores de desempenho como bem como o Rastreamento de eventos , que permite que os aplicativos fazer análise de desempenho para que possa identificar a causa de problemas de desempenho, entre os que existem, há um kit de ferramentas excelente: Windows Performance Toolkit disponível no Windows SDK .
Neste kit de ferramentas, você encontrará xbootmgr.exe
, destinado a Análise de desempenho de transição do Windows On / Off a>.
Embora o documento vinculado acima tenha todos os detalhes para cada transição de ativação / desativação, aqui está a idéia geral sobre o rastreamento e a análise da transição de desligamento usando xbootmgr
e a GUI xperf:
-
Faça o download do SDK do Windows e instale o Windows Performance Toolkit usando-o.
-
Abra um prompt de comando como administrador e execute:
cd %ProgramFiles%\Microsoft Windows Performance Toolkit
-
Se você quiser ajuda no futuro, digite
xbootmgr -help
experf /?
. -
Faça um rastreamento de reinicialização como este:
xbootmgr -trace shutdown -traceFlags BASE+DIAG+LATENCY -noPrepReboot
-
Após a inicialização, ele gerará um rastreamento em dois minutos.
-
O traço foi salvo em
%ProgramFiles%\Microsoft Windows Performance Toolkit
, você pode arrastá-lo paraxperf.exe
e ele será aberto em uma GUI. -
Você verá uma GUI com diferentes gráficos, a seta à esquerda permite adicionar / remover gráficos.
-
Veja os gráficos e veja se consegue identificar algo fora do comum, pode selecionar um intervalo e ampliar o zoom se quiser. Clique com o botão direito e descompacte quando quiser ver o todo.
-
Para cada gráfico, você pode clicar com o botão direito para obter tabelas de resumo para o intervalo atualmente selecionado .
-
Nessas tabelas, classifique por peso ou por hora para descobrir a que mais gasta. Por favor, note que você pode arrastar em torno de colunas, assim, por exemplo, a tabela de I / O permite que você verifique o processo de maior utilização, bem como o mais alto usando o caminho.
O divisor (uma coluna de cabeçalho amarela) faz com que as colunas à direita mostrem o total das colunas restantes. Então, se você tiver o Path primeiro e depois o Process, você pode abrir a árvore de um arquivo para ver quais processos o acessaram e então obter os totais para essa combinação de processo / arquivo.
-
Você pode encontrar mais informações sobre como os gráficos e tabelas funcionam aqui .
-
Se você, de alguma forma, precisar descer para examinar os rastros da pilha; faça outro rastreamento de inicialização e anexe o parâmetro
-stackWalk profile
, configure o _NT_SYMBOL_PATH e clique com o botão direito do mouse em qualquer gráfico e ative "Carregar símbolos ". Isso permitirá que você verifique quais funções ele está realmente chamando, em geral você não precisará disso para um desligamento; mas pode permitir coisas como descobrir que seu firewall está interferindo no depurador como programador. Muito bacana ...
Boa sorte, espero que você possa encontrar o culpado. Se não, então, solte o traço e vamos dar uma olhada para você ...
Por favor note que os DPCs são Chamadas de Procedimento Adiadas e Interrupções são Software Interrupts , ambos estão relacionados a drivers / hardware.