DBexpress Consumindo Mémoria ???

Delphi

05/05/2009

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 ???


Valdir_paulino

Valdir_paulino

Curtidas 0

Respostas

Woinch

Woinch

05/05/2009

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.


GOSTEI 0
Fundação Catarina

Fundação Catarina

05/05/2009

nós usamos o driver da devart com sqlserver e postgres e temos o mesmo problema.
GOSTEI 0
POSTAR