Ir para conteúdo

POWERED BY:

Arquivado

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

felipeaj

Consumo elevado de memória

Recommended Posts

E aí pessoal!

 

Estou programando em C# e VB.Net for Web a quase 2 anos, e comecei a fazer uma pequena aplicaçãozinha que vai ficar rodando em cada desktop, que simplesmente a cada minuto verifica umas informações no BD remoto e exibe um balão com uma informação.

 

A questão é que de partida, o processo ocupa 15Mb de memória.

Eu imagino que o exe carregue várias bibliotecas e utilidades que o .Net provê, etc etc, mas pro uso que eu vou fazer dele (uma conexão com o banco e talvez um balão a cada minuto), isso é demais

 

Em uma máquina até não é tanto, mas temos pc-expanion para alguns funcionários, e podem chegar a 6 pessoas usando a "mesma" máquina ao mesmo tempo

Então 6x15 = 90Mega

 

90 mega pra fazer o que o programa faz é demais!

 

Existe uma forma de reduzir isso?

Valeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse não é um cálculo correto (6x15), pode ser que dê menos ou mais de acordo com diversos fatores (como a qualidade do código escrito). E o .Net consegue gerenciar bem essa quantidade de memória.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse não é um cálculo correto (6x15), pode ser que dê menos ou mais de acordo com diversos fatores (como a qualidade do código escrito). E o .Net consegue gerenciar bem essa quantidade de memória.

 

Uhmmm... mas da forma que está a aplicação (formulário principal e uma classe apenas, com um método) ele está ocupando 15 mega

No formulário tem um timer, e um notifyIcon, que faz com que ele fique rodando só no tray, e eventualmente dispare um daqueles "baloon".

 

Não vejo como a qualidade do código poderia estar causando o uso de memória maior do que esperado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um teste, criei uma aplicação chamada "TesteWS", que só consulta um WebService que retona um boolean:

 

WSRecados.WSRecadosSoapClient Recados = new WSRecados.WSRecadosSoapClient("WSRecadosSoap");

MessageBox.Show(Recados.AutenticaUsuario("nome.sobrenome", "123").ToString());

 

E só

 

Quando a aplicação inicia, ela tá com 8 mega.

Quando clica no botão que chama os comandos acima, ele sobe para 25 mega e assim fica.

 

Não achei ninguém mais reclamando disso... será que o pessoal não se importa com isso? Ou pouca gente desenvolve para WinForms?

 

Valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim amigo felipeaj isso muito importante é muito bom um programador saber que sua aplicação esta consumindo muita memória, porem utilizar método dipose resolve esse caso o método dipose foi criado para isso quando é disparado método dispose é mandado um sinal para garbage collection o gerenciado de memória do net framework liberar essa memória do componente especifico.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente criar uma aplicação console, ou um serviço e remova todos as referencias que você não utiliza no seu projeto. E se você não vai mostrar nada na tela apenas no tray, não precisa criar um formulario.

Não esqueça de dar dispose na tela tbem.

Creio que não va baixar a menos de 10 mega a tua aplicação.

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.