terça-feira, 4 de agosto de 2015

WINDOWS 7 – DESEMPENHO – ARQUIVOS DLL - MITO OU VERDADE?

A TRAGÉDIA DA VIDA É QUE FICAMOS VELHOS CEDO DEMAIS E SÁBIOS TARDE DEMAIS.

Computador lento, claudicante, que demora uma eternidade para iniciar e outro tanto para abrir aplicativos tem jeito? Sem dúvida: Basta instalar esse ou aquele programinha "milagroso" ou fazer alguns ajustes prodigiosos para a máquina voltar ao que era nos primeiros dias de uso. Mas será mesmo? Infelizmente, a resposta é não. Embora existam procedimentos capazes de melhorar o desempenho do sistema e suítes de manutenção que cumprem o que promete, é preciso saber separar o joio do trigo para não ir buscar lã e voltar tosquiado. Por isso, veremos a seguir alguns exemplos de dicas populares que, além de não surtirem o efeito desejado, podem tornar a emenda pior do que o soneto.

Costuma-se dizer que, quando um aplicativo é encerrado, os arquivos DLL que ele utiliza permanecem carregados na memória, diante da possibilidade de o usuário tornar a abrir o programa mais adiante, e que, com o passar do tempo, resulta num desperdício significativo de memória. Então, a solução consiste abrir o programa de configuração do Registro (ou regedit, para os mais íntimos), navegar até HKEY_LOCAL_MACHINE\Software\Microsoft\ Windows\ CurrentVersion\Explorer, adicionar o valor DWORD "AlwaysUnloadDLL" e configurá-lo para 1 (um), de maneira a forçar a remoção das DLLs e liberar espaço na memória.

Antes de prosseguir, vale lembrar que a sigla "DLL" (de Dynamic Link Library) remete a uma solução mediante a qual a maioria das funções utilizadas pelos aplicativos não é codificada no corpo de cada programa, mas sim armazenada em "bibliotecas" pré-compiladas e compartilhadas pelos executáveis, dando origem a arquivos menores e mais fáceis de atualizar. Para gerar o executável, o programador informa ao compilador a localização dessas bibliotecas e combina o código das funções com o do programa propriamente dito.

Observação: No alvorecer da computação, um programa era constituído apenas pelo executável, que continha todas as instruções necessárias ao seu funcionamento. Mais adiante, com a adoção generalizada da interface gráfica e o aumento de tamanho dos softwares, a simples divisão de um aplicativo em múltiplos executáveis deixou de ser uma solução viável, já que os respectivos códigos não podiam ser compartilhados.

Numa analogia rudimentar, as DLLs estariam para o para o software assim como os drivers para o hardware: enquanto estes últimos fazem uma “ponte” entre os dispositivos e o SO, as primeiras fazem o mesmo em relação ao sistema e aplicativos. Toda DLL tem sua função específica: algumas tratam da entrada e saída de arquivos no disco (salvar, abrir etc.), outras cuidam do desenho das janelas na tela ou do tráfego de internet, e assim por diante. De certa forma, o próprio Windows é uma vasta coleção DLLs, já que sua função precípua (como a de qualquer SO) é garantir que as demais aplicações funcionem sem que tenham de "se preocupar com os detalhes de suas tarefas rotineiras". O kernel32.dll, por exemplo, é encarregado de salvar arquivos e gerenciar o uso da memória RAM, enquanto o user32.dll gerencia a área de transferência do sistema e cuida dos menus exibidos na tela, do papel de parede e do ponteiro do mouse. As DLLs podem ter diversas versões, e um software compilado para operar com uma delas nem sempre funciona corretamente com uma versão mais nova, mais antiga, ou mesmo de idioma diferente. Embora os desenvolvedores incluam em seus programas de instalação todas as DLLs necessárias ao aplicativo – e elas possuam informações sobre suas versões, de maneira a prevenir que as mais antigas sobrescrevam as mais recentes –, sempre existe a possibilidade de programas que rodavam sem problemas passarem a apresentar comportamento errático ou mesmo deixar de funcionar.

Voltando à vaca fria, a dica retrocitada funciona ─ ao menos no que diz respeito a liberar espaço na memória ─, mas daí a otimizar o desempenho do PC já é outra história, pois as bibliotecas terão de ser recarregadas a partir do HD quando algum aplicativo precisar delas, e como o HD é milhares de vezes mais lento que a RAM, a conclusão é óbvia. Ainda assim, a reconfiguração sugerida não causa malefício algum, e em determinadas situações pode até proporcionar resultados positivos. Implementá-la, ou não, fica a critério de cada um.

Abraços e até mais ler.