Criar Recursos sob Demanda

Esta é uma abordagem que deve ser seguida ao projetar uma aplicação web escalável. A regra geral aqui é criar objetos sensíveis a recursos quando eles são necessários, não antes, e destruí-los quando não forem mais necessários.

Um exemplo são as tabelas de banco de dados. Como descrito na seção anterior, tabelas de banco de dados podem carregar muitas linhas de uma vez, o que pode aumentar o uso de memória com o aumento do número de linhas. Isso é especialmente verdadeiro em conjuntos de dados em memória. O TClientDataset embutido do Delphi é um exemplo de conjunto de dados em memória. Para garantir que um conjunto de dados seja criado e carregado com dados quando necessário, é bom colocar o conjunto de dados em um formulário ou frame onde existam controles DB-aware. Cada vez que o usuário precisar acessar esse formulário, ele será criado e exibido junto com as tabelas e os controles DB-aware. Quando o usuário fechar o formulário, o conjunto de dados será liberado e sua memória será devolvida ao pool de memória da aplicação.

O método pode ser aplicado a ferramentas de relatórios. Em vez de colocar componentes de relatório no MainModule, ele pode ser criado pouco antes de gerar o relatório e destruído logo após o relatório ser gerado e salvo em um arquivo temporário.