Fórum DBexpress Consumindo Mémoria ??? #370246
05/05/2009
0
Boa noite,
uso Firebird no Delphi 7 atraves do dbexpress (driver dbexpUIBfire15.dll) ..
só que constatei um enorme consumo de Mémoria na minha aplicação !!
passei uns dias rastreando e pra resumir, isolei o problema, fiz o seguinte:
criei uma nova aplicação no delphi, arrastei o componente
SQLConnection, SQLDataSet1 e um Button
liguei o SQLConnection a qualquer banco firebird, depois da conexão estar ok, liguei o SqlDataset ao SQLConnection e selecionei uma tabela com alguns registros....
depois inserí o seguinte código no click to button:
procedure TForm1.Button1Click(Sender: TObject);
begin
SQLConnection1.Connected:=True;
SQLDataSet1.Active:=True;
SQLDataSet1.Active:=False;
SQLConnection1.Connected:=False;
end;
rodei aplicação e abri o gerenciador de tarefas,
dei diversos cliques no botão (uns 70)
a cada click que dava, percebi um AUMENTO NO CONSUMO DE MEMÓRIA!
memoria antes dos clicks: 7.128 K
memoria depois dos clicks: 14.428 K
praticamente dobrou !!
fui mais radical , criei um novo botão e coloquei no codigo:
procedure TForm1.Button2Click(Sender: TObject);
begin
SQLConnection1.Connected:=False;
FreeAndNil(SQLDataSet1);
FreeAndNil(SQLConnection1);
end;
depois de clicar varias vezes NO 1º BOTÃO até o consumo de memória DOBRAR, cliquei no 2º BOTÃO , afim de liberar aquela memória ´Extra´ e adivinhem:
ela continuou lá !!!!! mesmo depois de liberar os Objetos de conexão !!!
imaginem uma aplicação rodando o dia todo....!!
fiz o mesmo teste utilizando a conexão VIA
UIB e ADO e NÃO ACONTECE O MESMO !!!!
tenho que setar algum parametro no SQLConnection1 para que isto não Ocorra ???
uso Firebird no Delphi 7 atraves do dbexpress (driver dbexpUIBfire15.dll) ..
só que constatei um enorme consumo de Mémoria na minha aplicação !!
passei uns dias rastreando e pra resumir, isolei o problema, fiz o seguinte:
criei uma nova aplicação no delphi, arrastei o componente
SQLConnection, SQLDataSet1 e um Button
liguei o SQLConnection a qualquer banco firebird, depois da conexão estar ok, liguei o SqlDataset ao SQLConnection e selecionei uma tabela com alguns registros....
depois inserí o seguinte código no click to button:
procedure TForm1.Button1Click(Sender: TObject);
begin
SQLConnection1.Connected:=True;
SQLDataSet1.Active:=True;
SQLDataSet1.Active:=False;
SQLConnection1.Connected:=False;
end;
rodei aplicação e abri o gerenciador de tarefas,
dei diversos cliques no botão (uns 70)
a cada click que dava, percebi um AUMENTO NO CONSUMO DE MEMÓRIA!
memoria antes dos clicks: 7.128 K
memoria depois dos clicks: 14.428 K
praticamente dobrou !!
fui mais radical , criei um novo botão e coloquei no codigo:
procedure TForm1.Button2Click(Sender: TObject);
begin
SQLConnection1.Connected:=False;
FreeAndNil(SQLDataSet1);
FreeAndNil(SQLConnection1);
end;
depois de clicar varias vezes NO 1º BOTÃO até o consumo de memória DOBRAR, cliquei no 2º BOTÃO , afim de liberar aquela memória ´Extra´ e adivinhem:
ela continuou lá !!!!! mesmo depois de liberar os Objetos de conexão !!!
imaginem uma aplicação rodando o dia todo....!!
fiz o mesmo teste utilizando a conexão VIA
UIB e ADO e NÃO ACONTECE O MESMO !!!!
tenho que setar algum parametro no SQLConnection1 para que isto não Ocorra ???
Valdir_paulino
Curtir tópico
+ 0
Responder
Posts
06/05/2009
Woinch
Provavelmente deve ser algum problema no Driver.
Aqui passamos a utilizar um driver de terceiro pago da Devart e resolveu esse problema.
Espero ter ajudado.
Aqui passamos a utilizar um driver de terceiro pago da Devart e resolveu esse problema.
Espero ter ajudado.
Responder
Gostei + 0
05/01/2017
Fundação Catarina
nós usamos o driver da devart com sqlserver e postgres e temos o mesmo problema.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)