Otimizando o desempenho e a capacidade de resposta
Os clientes esperam sistemas de alto desempenho e responsivos. Isso abrange um amplo escopo de cenários que vão desde o tempo de inicialização até interações fluidas do usuário com aplicativos. A análise de problemas de desempenho requer muita experiência e conhecimento específico do domínio. A Microsoft fornece ferramentas para ajudá-lo a lidar com essa tarefa complexa.
Este guia apresenta o processo de medição, análise e resolução das causas raiz de problemas de desempenho em áreas-chave. Os tópicos incluem:
Usando o WPT (Windows Performance Toolkit)
Capturando rastreamentos de ETL (log de rastreamento de eventos)
Inicialização, inicialização do aplicativo e atrasos na interface do usuário
Análise de uso de recursos de CPU e disco
Caminho crítico e análise de espera
Metas
Este guia mostrará como executar as seguintes tarefas:
Coletar dados relevantes para analisar problemas de desempenho em qualquer sistema
Entender o processo de análise para examinar o consumo de recursos do sistema, como CPU e disco
Identificar o que pode afetar a capacidade de resposta do sistema em alguns dos principais cenários do Windows
Ferramentas
O Kit de Ferramentas de Avaliação do Windows no ADK fornece um conjunto de testes relacionados ao desempenho chamado avaliações. Os resultados da avaliação são usados para diagnosticar possíveis problemas, para que o hardware e o software desenvolvidos sejam responsivos e tenham um impacto mínimo na duração da bateria, no desempenho da inicialização e no tempo de desligamento. As mesmas avaliações estão disponíveis para parceiros OEM/ISV/IHV, entusiastas e outros membros da comunidade, para estabelecer uma estrutura comum para medir, comparar e examinar aspectos de qualidade.
O Windows Performance Toolkit consiste em duas ferramentas independentes: WPR (Windows Performance Recorder) e WPA (Windows Performance Analyzer). O WPR é uma ferramenta de gravação poderosa que cria gravações de ETW (Rastreamento de Eventos para Windows). Você pode executar o WPR na interface do usuário ou na CL (linha de comando). A WPR fornece perfis internos que você pode usar para selecionar os eventos que deseja registrar. O WPA é uma poderosa ferramenta de análise que combina uma interface do usuário flexível com recursos de grafo extensivos e tabelas de dados que podem ser dinamizadas e ter recursos de pesquisa de texto completo.
Comportamento de inicialização rápida
Introduzido no Windows 8, a Inicialização Rápida é o comportamento de inicialização padrão. O processo de desligamento foi atualizado para incluir a gravação de dados em disco de uma maneira que espelha como funciona a hibernação. Durante a inicialização, o sistema passa pelas fases descritas na tabela a seguir.
Fase | Descrição |
---|---|
Inicialização do BIOS | O tempo que o sistema operacional leva para inicializar o BIOS, incluindo o PXE (Ambiente de Execução de Pré-Inicialização). |
Leitura de Hiberfile | O tempo que o sistema operacional leva para ler o hiberfile do disco. O hiberfile contém todo o contexto do sistema, conforme gravado durante o desligamento. |
Retomar Dispositivos | O tempo que o sistema operacional leva para retomar os dispositivos e colocá-los de volta no estado de energia ativo. |
Retomar do WinLogon | O tempo que o sistema operacional leva para retomar o processo do Winlogon. |
Inicialização do Explorer | O tempo que o sistema operacional leva para inicializar o shell do Windows (explorer.exe). Essa fase termina quando a tela inicial ou da área de trabalho fica visível para o usuário. |
Duração de ativação/desativação | O tempo que o Windows leva para concluir todas as tarefas de inicialização depois que a área de trabalho é exibida, mas até que a CPU e o recurso de disco fiquem ociosos. |
Para obter mais informações sobre o comportamento de inicialização rápida, consulte o tópico Desempenho da transição ativada/desativada no MSDN.
Agendamento e threads da CPU
Como o número de processadores em um sistema é limitado, todos os threads não podem ser executados ao mesmo tempo. O Windows implementa o compartilhamento de tempo do processador, que permite que um thread seja executado por um período de tempo antes que o processador mude para outro thread. O ato de alternar entre threads é chamado de comutador de contexto e é executado por um componente do Windows chamado dispatcher. Cada thread existe em um estado de execução específico a qualquer momento. O Windows usa três estados relevantes para o desempenho: Em execução, Pronto e Aguardando.
Os threads que estão sendo executados estão no estado Em execução . Os threads que podem ser executados, mas atualmente não estão em execução, estão no estado Pronto . Os threads que não podem ser executados (porque estão aguardando um evento específico) estão no estado Aguardando . A figura a seguir ilustra as possíveis transições de thread.
Um thread no estado Em execução inicia uma transição para o estado Aguardando chamando uma função de espera, como WaitForSingleObject ou Sleep(> 0).
Uma operação de thread ou kernel em execução lê um thread no estado Aguardando (por exemplo, SetEvent ou expiração do temporizador).
Um thread no estado Pronto é agendado para processamento pelo dispatcher quando um thread em execução aguarda ou atinge o fim de seu quantum de execução.
Um thread no estado Em execução é alternado e colocado no estado Pronto pelo dispatcher quando é precedido por um thread de prioridade mais alta ou quando seu quantum termina.
O estado do thread se torna um fator importante no desempenho somente quando um usuário está aguardando um thread concluir uma operação.
Para obter mais informações sobre o agendamento da CPU, consulte o tópico Análise de CPU no MSDN.
Exercícios
Este guia consiste nos exercícios a seguir.