Esse artigo faz parte da revista .NET Magazine edição 59. Clique aqui para ler todos os artigos desta edição

 

FONT-SIZE: 10pt; FONT-FAMILY: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol">·         O modelo de gestão de memória com controle de gerações;

·         Como tornar uma aplicação .Net mais eficiente com relação à utilização dos recursos;

·         Quais as vantagens do modelo de coleta de lixo do .Net;

·         Como criar um objeto que precisa gerenciar recursos limitados e como consumi-los.

Qual a finalidade

·         Entender como funciona a alocação e coleta de memória e a gestão de recursos que ocorre nos bastidores do .Net Framework.

Quais situações utilizam esses recursos?

·         Desenvolvedores de aplicações .Net que se preocupem com alocação da memória e outros recursos limitados de hardware e software entrarão em contato neste artigo com princípios fundamentais para sua gestão eficiente.

 

Resumo do DevMan

O Garbage Collector (GC) do.Net Framework faz o gerenciamento automático de memória, mas devemos entender como isso acontece para ter um software de melhor qualidade e performance.

Muito do trabalho do GC acontecem de forma transparente aos desenvolvedores, facilitando enormemente o nosso trabalho evitando que ocorram erros, mesmo assim não basta apenas estar funcionando, deve ser rápido e eficiente para não consumir mais recursos do que deveria e não causar transtornos aos usuários e clientes. É muito ruim usar um aplicativo que vive travando e veremos como fazer o máximo para evitar esse tipo de problema.

 

Nós desenvolvedores .Net temos uma ferramenta muito poderosa que é o Garbage Collection, responsável por gerenciar a memória dos nossos aplicativos. Em outras linguagens de programação como C++ o desenvolvedor é responsável por fazer o próprio gerenciamento da memória, que se não for bem feito, pode criar consumo excessivo de memória e até mesmo corromper os dados.

As linguagens com Garbage Collector parecem ser uma tendência daqui para frente, principalmente com o .Net e o Java. O único requisito para poder executar os programas desenvolvidos nestas plataformas, é instalar a infra-estrutura e o framework respectivo, que serão responsáveis pela coleta de memória e disponibilizar as bibliotecas padrão. Isto torna possível rodar o mesmo executável em qualquer sistema que tenha o framework, não importando o processador e arquitetura, pois você está programando para o .Net e não para um tipo de processador (como x86) ou um Sistema Operacional (desde que você não use recursos que dependa dele, como o registro do Windows). Versões mais antigas do Windows não são mais suportadas pela Microsoft, mas você ainda pode instalar o Mono, uma versão Open Source da runtime do .Net  que suporta Linux, Windows e Mac OS.

Outra vantagem é o maior nível de segurança, você pode facilmente limitar o acesso dos programas aos recursos do sistema, como o acesso a rede. Esse é o motivo por que alguns programas não funcionam bem quando você executa direto de uma unidade da rede: eles têm menos permissões do que os programas que são executados localmente.

 

GC Segments

Para entender como funciona o Garbage Collector antes temos que saber como funciona o gerenciamento de memória do .Net.

...

Quer ler esse conteúdo completo? Tenha acesso completo