Compartilhar via


Duração dos processos de suspensão

Mais aplicável a: Desenvolvedores de aplicativos

Avaliações relevantes:

  • Desempenho de inicialização (inicialização rápida)
  • Desempenho em espera
  • Desempenho de hibernação

Essa métrica mede o tempo que o computador gasta notificando os processos da alteração iminente do estado de energia.

Durante essa fase, o Subsistema de Servidor de Runtime do Cliente/Servidor (Csrss.exe) transmite WM_POWERBROADCAST mensagens de janela junto com o tipo de evento de PBT_APMSUSPEND para cada aplicativo que possui uma janela. O sistema também pode desligar o monitor.

Essa atividade pode ser vista no grafo Atividades do WPA como uma grande lacuna entre processos consecutivos que estão sendo suspensos. Espera-se que um segundo ou mais desliguem o monitor. Esse é um estágio necessário durante a suspensão/desligamento e não deve ser considerado um gargalo de desempenho para essa métrica.

Examine o grafo uso da CPU (amostra) durante esse tempo para mostrar a utilização da CPU no processo de csrss.exe na pilha a seguir:

[Root] (csrss.exe) 
winsrv.dll!RegisterForDeviceBroadcastNotifications 
|- winsrv.dll!ZwUserCallNoParam 
|    win32k.sys!xxxUserPowerStateCalloutWorker 
|    |- win32k.sys!PowerOffMonitor 
|    |    |- win32k.sys!FadeDesktop 
|    |    |- win32k.sys!DrvSetMonitorPowerState 
|    |    |- win32k.sys!UpdateDisplayState 
|    |    |- win32k.sys!DwmSyncClearSwapChain 
|    |    |- win32k.sys!RestoreGammaRamp

As lacunas nos processos de suspensão devido ao consumo de CPU em outras pilhas ou atrasos sem utilização da CPU na pilha atual podem sugerir áreas para investigar mais.

Quando a métrica é expandida, uma exibição de fase mais detalhada é apresentada, com um conjunto de submétricas que medem os tempos que cada processo levou para responder às notificações de suspensão. As colunas mostram as seguintes informações:

  • Um PID por iteração na coluna Detalhes . No modo de exibição padrão, essa coluna pode conter o valor "Vários" porque os PIDs não podem ser agregados entre iterações. Expanda iterações para ver PIDs individuais.

  • O tempo que esse processo específico levou durante essa fase.

Observação

Se um aplicativo tiver mais de uma janela, o mesmo processo poderá receber mais de uma notificação.

Fatores típicos de influência

Cada aplicativo tem a capacidade de atrasar o desligamento do sistema atrasando sua resposta à mensagem WM_POWERBROADCAST com PBT_APMSUSPEND tipo de evento. Como essa métrica captura o tempo cumulativo que todos os processos de GUI do Windows levam para responder à notificação de suspensão, essa métrica pode ser afetada por um único processo que leva muito tempo, além de um tempo cumulativo de todas as respostas do processo. Observe que o processo deve estar em execução para afetar essa métrica; porque a avaliação de Desempenho de Inicialização (Inicialização Rápida) é reinicializada antes de coletar dados para análise, esses processos vêm quase exclusivamente de aplicativos de inicialização ou tarefas agendadas.

Etapas de análise e correção

Identifique os processos que mais afetam significativamente essa métrica. No Console de Avaliação do Windows, expanda a métrica Suspender Duração dos Processos para obter os detalhes dessa fase. Na lista Processo para essa fase, classifique a Duração em ordem decrescente e procure os maiores colaboradores.

Se possível, remova os aplicativos do caminho de inicialização. Como prática recomendada, os aplicativos de inicialização devem ser mantidos no mínimo. Se um aplicativo unessential estiver causando atrasos, considere removê-lo da lista de aplicativos de inicialização.

A solução de problemas e a correção de problemas com esse impacto significativo no caminho de inicialização exigem uma análise profunda dos atrasos do aplicativo. Consulte Práticas recomendadas para tarefas de Time-Critical no tópico Resultados para avaliações de ativação/desativação para obter uma lista de práticas recomendadas comuns.

Informações adicionais

MSDN: evento PBT_APMSUSPEND