Olá, pessoal.
Muitas vezes, nossos programas acabam usando muita memória da máquina. Ao abrir um arquivo grande, por exemplo.
O programa irá automaticamente lidar com a limpeza de memória, já que prisma possui gerenciamento automático de memória.
No entanto, essa limpeza pode demorar, ou até não ser feita em algumas situações. Porém, há uma maneira de cuidarmos disso, veja o código que precisa ser melhorado abaixo:
1 2 3 4 5 6 7 8 9 |
//exemplo de um código ruim: local dir = inclua'dir'; conteudo = dir.leia_arquivobin('arquivogrande'); função principal() imprima(conteudo); //outros códigos agui... retorne 0; fim |
O que podemos fazer no código acima para melhorá-lo? Simples! Sempre que não precisar mais de uma variável que está ocupando muita memória, basta atribuirmos o valor nulo a ela, e logo após chamar a função para limpar a memória.
Veja as modificações:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//exemplo de um código ruim: local dir = inclua'dir'; local conteudo = dir.leia_arquivobin('arquivogrande'); função principal() imprima(conteudo); //não precisamos mais da variável conteudo conteudo = nulo; imprima('Limpeza de memoria em 5 segundos...'); sis.durma(5000); coletelixo(); //outros códigos agui... retorne 0; fim |
Após usar a função coletelixo(), a variável libera tudo o que estava na memória antes, fazendo o seu programa mais eficiente, economizando memória. Isso em um computador pessoal, pode não fazer muita diferença, mas em um servidor faz toda.
Dica: troque ‘arquivogrande’ por um nome de arquivo real em seu computador, abra o gerenciador de tarefas e veja o tanto de memória que será limpa.
Pessoal, espero que tenha sido útil este post e até mais.