Uso do Coletor de lixo

O BlackBerry Java Virtual Machine inclui o Coletor de lixo, que é executado regularmente para remover objetos sem referência ou com pouca referência da memória. Não chame o Coletor de lixo diretamente; libere recursos definindo as referências como nulo após usá-las.

Coleta de lixo completa em um aparelho BlackBerry

A operação de coleta de lixo completa costuma ser executada em uma média de 1 segundo e não deve demorar mais de 2 segundos para ser concluída. Essa operação faz o seguinte:

  • Realiza a operação de coleta de lixo da RAM.
  • Marca os objetos na memória flash que não têm mais referência ou não são mais persistentes.
  • Libera handles de objetos não-persistentes na RAM e na memória flash.

O sistema pode iniciar uma operação de coleta de lixo completa nas seguintes situações:

  • A BlackBerry Java Virtual Machine não pode alocar um objeto devido a falta de espaço na RAM.
  • O processo está quase excedendo o tamanho de heap alocado no momento.
  • A BlackBerry JVM não pode alocar um novo objeto porque não há handles de objeto disponíveis.
  • O aparelho BlackBerry está inativo.

Coleta de lixo de RAM em um aparelho BlackBerry

A BlackBerry Java Virtual Machine inicia uma operação de coleta de lixo da RAM apenas quando o BlackBerry JVM não consegue alocar um objeto devido a falta de espaço na RAM. A operação de coleta de lixo da RAM costuma levar de 500 a 600 milissegundos para ser executada. Essa operação remove as variáveis recentemente alocadas que não têm mais referência na RAM. Para ter a certeza de que a falta de referência na RAM seja uma condição suficiente para remover o objeto, a operação de coleta de lixo da RAM poderá ser executada apenas quando os objetos não tiverem sido enviados para a memória flash.

Coleta de lixo em um aparelho BlackBerry inativo

A coleta de lixo não ocorre sempre que o aparelho BlackBerry fica inativo. Ocorre apenas quando o sistema considera que a operação de coleta de lixo otimizará o desempenho do sistema e maximizará o desempenho da bateria.

Para melhorar o desempenho sem prejudicar a experiência do usuário do aparelho BlackBerry, o sistema tenta realizar as seguintes operações de coleta de lixo quando o aparelho BlackBerry fica inativo:

  • Uma operação de coleta de lixo completa ocorre quando o aparelho BlackBerry fica inativo por um tempo relativamente pequeno.
  • Uma operação de coleta de lixo minuciosa ocorre quando o aparelho BlackBerry fica inativo por um tempo significativo.

Estas informações foram úteis? Gostaríamos de receber seus comentários.