| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Wolver Membro Junior

Registrado: Quinta-Feira, 9 de Fevereiro de 2006 Mensagens: 343
|
Enviada: Ter Jul 08, 2008 1:06 pm Assunto: Liberar Memória |
|
|
Estou executando uma importação de arquivo e durante o processo está ficando cada vez mais lento conforme a progressão, como faço para liberar a memória para que o processo continue com a mesma performance por todo o processo?
Crio objetos em toda a minha rotina e para liberar estou usando
try
objeto.create;
while nof eof do begin
rotina de importacao;///dentro dela crio outros objetos do mesmo tipo do criado acima
end;
finally
FreeAndNil(objeto);
end; |
|
| Voltar ao Topo |
|
 |
joemil Moderador

Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9100 Localização: Sinop-MT
|
Enviada: Ter Jul 08, 2008 4:47 pm Assunto: |
|
|
q objetos vc esta criando? _________________ <b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/ |
|
| Voltar ao Topo |
|
 |
DonOctavioDelFlores Colaborador

Registrado: Quarta-Feira, 12 de Setembro de 2007 Mensagens: 2630 Localização: Pra lá de Bagda
|
Enviada: Ter Jul 08, 2008 5:06 pm Assunto: |
|
|
usa stream e nao stringlist  _________________ “The problem with the world is that everyone is a few drinks behind.” Humphrey Bogart |
|
| Voltar ao Topo |
|
 |
gilsonnrodrigues Moderador

Registrado: Quinta-Feira, 14 de Abril de 2005 Mensagens: 9009 Localização: Governador Valadares-MG
|
Enviada: Ter Jul 08, 2008 9:12 pm Assunto: |
|
|
FreeMemory.
to brincando!!!
vc vai ter q explicar melhor!!!
tem mts vezes q o problema é tão complicado q não tem cmo liberar as memórias alocadas, e aí só colocando + memória no PC.
agora se vai poder ou não? só vendo como ta seu código. |
|
| Voltar ao Topo |
|
 |
Wolver Membro Junior

Registrado: Quinta-Feira, 9 de Fevereiro de 2006 Mensagens: 343
|
Enviada: Qua Jul 09, 2008 10:14 am Assunto: |
|
|
| joemil escreveu: | | q objetos vc esta criando? |
joemil, gilsonnrodrigues, DonOctavioDelFlores
Fiz assim:
Exemplo
TBColaborador = Class
private
novo : boolean;
empresa : string;
codigo : string;
nome : string;
status : string;
protected
public
contructor create;
destructor destroy;
procedure gravar;
procedure excluir;
procedure carregadadoscolaborador;
published
property NOVO : Boolean read FNOVO;
property EMPRESA : String read FEMPRESA;
property CODIGO : String read FCODIGO;
property NOME : String read FNOME write FNOME;
property STATUS : String read FSTATUS write FSTATUS;
Basicamente o meu projeto todo é feito assim (tem mais coisa ocultas que não convém mostrar)
mas o caso é que a quando vou fazer a importação eu crio o objeto e logo depois de feita a gravação utilizo o FreeAndNil()
assim:
try
objeto.create;
while nof eof do begin
rotina de importacao;///dentro dela crio outros objetos do mesmo tipo do criado acima
end;
finally
FreeAndNil(objeto);
end;
eis a pergunta: em termos de performance é melhor eu criar esse objeto na hora que crio o meu form (form da importação) e libero ele na formonclose?Ou durante o while ?(citado acima).
Só sei que estou com problema sério.... ...a rotina em si funciona, só que estou achando que não é apropriada para ser utilizada dessa maneira, se alguém puder me ajudar agradeço.Obrigado!
espero que tenham entendido...até mais! |
|
| Voltar ao Topo |
|
 |
BugsBunny Mestre


Registrado: Quarta-Feira, 19 de Novembro de 2003 Mensagens: 890
|
Enviada: Qua Jul 09, 2008 10:26 am Assunto: |
|
|
Olá velinho,
Deixa ver se eu entendi... Vc está criando essa classe de colaboradores para cada colaborador que vc ler? É isso?
Realmente, se for isso tem algumas coisas faltando, vc criou uma serie de classes e simplesmente não tem como encontrar um colaborador especifico sem "percorrer" todas as classes. E porque não está gravando numa tabela ...
Como é esse arquivo texto? Porque uma forma mais tradicional de importação não funciona?
Bugs  |
|
| Voltar ao Topo |
|
 |
Wolver Membro Junior

Registrado: Quinta-Feira, 9 de Fevereiro de 2006 Mensagens: 343
|
Enviada: Qua Jul 09, 2008 10:56 am Assunto: |
|
|
| BugsBunny escreveu: | Olá velinho,
Deixa ver se eu entendi... Vc está criando essa classe de colaboradores para cada colaborador que vc ler? É isso?
Realmente, se for isso tem algumas coisas faltando, vc criou uma serie de classes e simplesmente não tem como encontrar um colaborador especifico sem "percorrer" todas as classes. E porque não está gravando numa tabela ...
Como é esse arquivo texto? Porque uma forma mais tradicional de importação não funciona?
Bugs  |
| BugsBunny escreveu: | Olá velinho,
Deixa ver se eu entendi... Vc está criando essa classe de colaboradores para cada colaborador que vc ler? É isso?
|
eu crio a classe colaborador...(tenho uma Unit onde declarei todas a classes que utilizo no meu projeto),...crio a o objeto de acordo com a necessidade de ser utilizado...até porque se eu for ficar criando uma classe para cada colaborador (não tem lógica) ;
| BugsBunny escreveu: |
Realmente, se for isso tem algumas coisas faltando, vc criou uma serie de classes e simplesmente não tem como encontrar um colaborador especifico sem "percorrer" todas as classes. E porque não está gravando numa tabela ...
|
...não é isso não...localizo o colaborador através de uma procedure não mencionada.
Da forma tradicional até daria para fazer, mas se eu fizer outra rotina terei duas rotinas fazendo a mesma coisa.
É uma importação de relógio de ponto onde tenho somente a matricula e a data e a hora da batida ...aí tenho que localizar o horário que está cadastrado para o colaborador e ver se a batida se encaixa (em qual deles...cada colaborador por ter inúmeros horários cadastrados - diferentes entre si - não é tão simples) |
|
| Voltar ao Topo |
|
 |
|