Práticas recomendadas para o desempenho de ativação/desativação
Plataforma
Clientes- Windows Vista | Windows 7
Servidores- Windows Server 2008 | Windows Server 2008 R2
Descrição
Os estados de energia do sistema (ou estados S), conforme definido na especificação da ACPI (Advanced Computer Power Interface), são chamados coloquialmente de estados de ativação/desativação, pois a transição de estado S mais comum é um computador ligando e desativando. As diferentes transições de estado de ativação/desativação em um sistema que executa o Windows Vista ou o Windows 7 são inicialização, suspensão (ACPI S3), hibernação (ACPI S4) e desligamento.
O bom desempenho durante essas transições de ativação/desativação não apenas melhora a qualidade percebida de um computador, mas também afeta muito os padrões diários de uso do computador e a confiabilidade do sistema. Os clientes podem ficar frustrados com sistemas que demoram muito para inicializar ou desligar. Sistemas móveis que têm longas transições de suspensão e hibernação podem esgotar desnecessariamente a duração da bateria. Tempos de desligamento mais longos também podem afetar negativamente a confiabilidade dos sistemas móveis. Por exemplo, eles aumentam o risco de cortes de energia inesperados.
Extensões do sistema, como drivers, aplicativos e serviços, podem ter um impacto significativo nos tempos de transição de ativação/desativação. Esta seção discute algumas das práticas recomendadas que os desenvolvedores de aplicativos e serviços podem seguir para evitar atrasos durante a inicialização, espera e desligamento, e para garantir uma experiência de usuário pós-inicialização e pós-retomada responsiva. Para obter mais detalhes sobre como identificar problemas de desempenho de ativação/desativação usando o Kit de Ferramentas de Desempenho do Windows e implementar as recomendações abaixo para seu aplicativo ou serviço, consulte os white papers na seção "Links para outros recursos".
Práticas Recomendadas
- Use o Kit de Ferramentas de Desempenho do Windows para medir o desempenho durante todas as transições de ativação/desativação.
- Execute testes de maneira controlada e faça comparações em relação a uma linha de base válida:
- Obter uma medida de linha de base em um sistema com o menor número possível de extensões do sistema
- Adicionar aplicativos e serviços um de cada vez
- Testar regressões inaceitáveis em tempos de transição de ativação/desativação
- Evite usar o código gerenciado para aplicativos no caminho de inicialização crítico.
- Verifique se todos os aplicativos respondem rapidamente às notificações de desligamento (mensagens WM_QUERYENDSESSION e WM_ENDSESSION).
- Reduza os atrasos no caminho de desligamento de serviços e aplicativos minimizando a atividade de CPU, disco e rede em resposta às notificações de desligamento.
- Evite atrasos no processamento da notificação de suspensão (WM_POWERBROADCAST mensagem).
- Responda rapidamente para retomar eventos e minimizar o uso de rede, disco e CPU pós-retomada.
- Reduza o consumo de recursos do aplicativo após a inicialização.
- Não inicie aplicativos da chave RunOnce em cada inicialização.
- Converta todos os serviços não essenciais para iniciar ou disparar a demanda para disponibilizar recursos do sistema durante a inicialização.
- Evite usar grupos de ordem de carga para expressar dependências de serviço.
- Verifique se todos os serviços em execução relatam esse status o mais rápido possível durante a inicialização para evitar o bloqueio do SCM (Service Control Manager).
- Evite usar código gerenciado para serviços no caminho de inicialização.
- Não permita que os serviços aceitem receber notificações de desligamento e pré-desligamento (códigos de controle de SERVICE_CONTROL_PRESHUTDOWN e SERVICE_CONTROL_SHUTDOWN), a menos que seja absolutamente necessário.
- Verifique se todos os serviços que optaram por receber notificações de desligamento respondem rapidamente ao SCM.
- Verifique se os serviços não optam por receber notificações de suspensão, a menos que seja absolutamente necessário.
- Certifique-se de que todos os serviços respondam rapidamente para retomar eventos e minimizar o uso pós-retomada da CPU, do disco e da rede.
Links para outros recursos
- Análise de desempenho de transição ativa/desativada do Windows Vista
- Análise de Desempenho do Windows
- Documentação do Windows Performance Toolkit no MSDN
- Fórum de Análise de Desempenho do Windows
- Rastreamento de eventos para Windows no MSDN