terça-feira, 3 de setembro de 2013

CLR – Performace Garbage Collection (Coletor de Lixo)

Todos nós sabemos que qualquer computador que seja não tem uma quantidade ilimitada de memoria, por tanto a memoria deve ser recuperada bem quando uma variável ou objeto não estiver mais sendo utilizada. Tipos de valores (Value types) são destruídos e limpos quando saem de uso (de seu bloco de código), existe um tratamento por traz de seu código que efetua esta limpeza. Já o Garbage Collection (Coletor de Lixo) que faz parte do CLR, recupera a memoria dos tipos de valores em uso, este método não é controlado diretamente por código.


Criando um objeto usando NEW.

TextBox mensagem = new TextBox();// Neste momento estou instanciando em memoria (Heap).

Criando um Destrutor (Destructors)
É possível usar um Destrutor e arrumar o que for necessário quando um objeto de lixo é coletado. O CLR utilizada o Destrutor para um objeto quando tem uma última referencia. Com o C# vamos definir o método (method) com  o mesmo nome da classe (class), porém com o prefixo (~) na frente, veja o exemplo:

    class TesteDestrutor
    {
        public TesteDestrutor()
        {
            instanciaCount++;
        }

        ~TesteDestrutor()
        {
            instanciaCount--;
        }
        public static int instanciaCount()
        {
            return instanciaCount;
        }
        //...
        private static int instanciaCount = 0;
    }
Algumas dicas e restrições importantes de uso:
  •   Destrutor, só se aplica em tipos de referencia (reference types). Não utilize o destrutor em tipos de valores (Value types), structure ou enumeration.
  •   Usando o C#, não poderá especificar um modulador de acesso ao destrutor.
  •   O Destructor não poderá ter nenhum parâmetro.
Bons, estudos

0 comentários:

Postar um comentário