Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Willimar

Vazamento de Memória com Windows Form

Recommended Posts

Pessoal,

 

sou analista de projetos de uma emrpesa de software e recentemente nossos sistemas em .Net que ainda são minoria começaram a dar System.OutOfMemoryException.

 

Esplicando melhor o erro se deve a estouro de memoria por parte do aplicativo. Comecei então a observar que toda vez que efetuo a abertura de uma tela no sistema é feita a alocação da memoria e esta por sua vez não é retirada quando a tela é fechada.

 

Num primeiro momento acreditei que fosse recurso para melhoria de desempenho por parte do framework, mas o porem que isso é acumulativo. Ao abrir uma tela é alocado por exemplo 1 Mb na memoria ao abrir novamente alocado 200 Kb na memoria. Como não consegui observar uma PA (Progressão Aritimetica) recori a ferramentas de monitoração de memoria.

 

No segundo momento observei que o problema ocorria em controles da DevExpress onde era alocada na memoria, mas ao fechar a tela não saia da memoria. Na comunidade da Dev observei que já houve este tipo de problema anteriormente, então montei um projeto contendo somente tela e controles.

 

Primeira Tela contendo somente controles MSVS

 

Segunda Tela contendo somente controles DevExpress

 

NÃO havia código nas telas somente código para abertura da tela.

 

Public Class RibbonForm1

 

Private Sub BarButtonItem1_ItemClick(sender As System.Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem1.ItemClick

Dim xxx As New Form1

xxx.ShowDialog(Me)

xxx.Dispose()

xxx = Nothing

End Sub

 

Private Sub BarButtonItem2_ItemClick(sender As System.Object, e As DevExpress.XtraBars.ItemClickEventArgs) Handles BarButtonItem2.ItemClick

Dim xxx As New XtraForm1

xxx.ShowDialog(Me)

xxx.Dispose()

xxx = Nothing

End Sub

End Class

 

Mesmo neste exemplo as telas continuam aumentando a memoria e este aplicativo quando aberto ocupa 12Mb e após abrir várias vezes as duas telas fecha com 17Mb sendo que deveria fechar com os mesmo 12 de quando foi aberto.

 

Acredito que se continuasse a abrir a tela o dia inteiro o aplicativo poderia passar da casa dos 200Mb.

 

Alguém sabe algo sobre este problema? Já perceberam o problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.