▲
Aqui está a notícia reescrita:
Você já se perguntou por que o Windows 7 lento para iniciar, mesmo com uma tela de fundo de cor sólida? Um engenheiro da Microsoft revelou que essa escolha aparentemente simples de personalização poderia, inesperadamente, aumentar o tempo de login. Descubra o motivo por trás dessa peculiaridade e como ela afetava a experiência do usuário.
A Curiosa Lentidão do Windows 7 com Fundos Sólidos
Em 2009, logo após o lançamento do Windows 7, muitos usuários começaram a relatar um problema intrigante: a tela de boas-vindas demorava muito para desaparecer após o login. Em alguns casos, o atraso chegava a 30 segundos, um tempo considerável para quem só queria acessar o sistema.
O mais curioso é que essa lentidão parecia estar relacionada ao uso de uma cor sólida como plano de fundo da área de trabalho. A Microsoft confirmou a existência do problema em um artigo de suporte, que mencionava o Windows 7 e o Windows Server 2008 R2. Mas qual era a explicação técnica para esse comportamento estranho?
Raymond Chen, um engenheiro veterano da Microsoft e autor do blog The Old New Thing, explicou recentemente a razão técnica por trás dessa lentidão. Segundo Chen, que sempre preferiu usar cores sólidas para economizar memória e facilitar a identificação de bugs, o processo de login do Windows envolve o carregamento simultâneo de vários componentes.
Leia também:
Esses componentes incluem a barra de tarefas, os serviços do sistema, os ícones da área de trabalho e o próprio plano de fundo. O sistema aguarda um sinal de “pronto” de todos esses elementos antes de remover a tela de boas-vindas e exibir a área de trabalho. Se algum componente não enviar esse sinal, o sistema espera por até 30 segundos antes de prosseguir.
O Mistério do Sinal “WallpaperReady”
O problema, segundo Chen, era que um desses componentes simplesmente não enviava o sinal de “pronto” quando o usuário escolhia uma cor sólida como plano de fundo. Para ilustrar isso, ele apresentou um exemplo simplificado de como o código para carregar o papel de parede poderia ser:
InitializeWallpaper()
{
if (wallpaper bitmap defined)
{
LoadWallpaperBitmap();
}
}
LoadWallpaperBitmap()
{
locate the bitmap on disk
load it into memory
paint it on screen
Report(WallpaperReady);
}
O ponto crucial é que a chamada Report(WallpaperReady)
estava dentro da função LoadWallpaperBitmap
, que só era executada se um bitmap de papel de parede estivesse definido. Se o usuário optasse por uma cor sólida, a função LoadWallpaperBitmap
era ignorada, e a linha Report(WallpaperReady)
nunca era executada. O sistema de login, portanto, ficava esperando por um sinal que nunca chegaria, até atingir o timeout de 30 segundos.
Chen observou que um problema semelhante poderia ocorrer se a política de grupo “Ocultar ícones da área de trabalho” estivesse ativada. Isso porque o código que sinalizava que os ícones da área de trabalho estavam prontos provavelmente estava dentro da verificação condicional dessa política.
// Código original
InitializeDesktopIcons()
{
bind to the desktop folder
enumerate the icons
add them to the screen
Report(DesktopIconsReady);
}
// Atualizado com suporte à política de grupo
InitializeDesktopIcons()
{
if (desktop icons allowed by policy)
{
bind to the desktop folder
enumerate the icons
add them to the screen
Report(DesktopIconsReady);
}
}
Nesse caso, se a política impedisse a exibição dos ícones, a chamada de relatório também seria ignorada, levando ao mesmo timeout de 30 segundos na tela de boas-vindas. É importante notar que o processo de login em si não levava necessariamente 30 segundos extras para ser concluído. A tela de boas-vindas apenas permanecia visível durante todo o timeout porque um componente específico não sinalizava sua conclusão, mesmo que todas as outras partes do login já tivessem sido carregadas.
Conforme indicado no artigo de suporte da Microsoft, uma correção para esse problema foi lançada para Windows 7 e Windows Server 2008 R2 em novembro de 2009. Se você está procurando por alternativas para aumentar a velocidade do seu PC, vale a pena conferir também este artigo sobre otimizar o Windows 11.
Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.
Via Neowin