Foros del Web » Programación para mayores de 30 ;) » .NET »

Reducir consumo de memoria

Estas en el tema de Reducir consumo de memoria en el foro de .NET en Foros del Web. Buenas! Acabo de terminar un pequeño programita de solo dos formularios. Todo me funciona bien pero hay un problema y esq consume un porron de ...
  #1 (permalink)  
Antiguo 09/05/2006, 01:17
 
Fecha de Ingreso: marzo-2004
Mensajes: 338
Antigüedad: 20 años, 2 meses
Puntos: 2
Reducir consumo de memoria

Buenas! Acabo de terminar un pequeño programita de solo dos formularios. Todo me funciona bien pero hay un problema y esq consume un porron de memoria para lo pequeño que es y tarda años en abrirse. Consume aproximadamente 19.580K. He desarrollado el programa en VB.NET y todos los controles los he definido estaticos. Los Oledbdataadapters tambien van estáticos.

Alguien me puede dar consejos generales para conseguir reducir el consumo de memoria de un programa VB.NET?

Muchas gracias
__________________
SiMpLiFiKa
http://www.manitasdelweb.com
  #2 (permalink)  
Antiguo 09/05/2006, 02:16
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años
Puntos: 2
Veamos

El definir tus objetos como estaticos podria ser un problema ya que todas las variables estaticas se crean antes de empesar la funcion main y se destruyen sepues de terminada la funcion main, es decir tus objetos existen durante todo el programa, se utilicen o no se utilicen, esto porsupuesto trae como consecuencia un elevado consumo de memoria.

lo ideal de los objetos dinamico(automaticos) es que se crean segun se utilicen y se destruyen cuando estos ya no se utilizaran, esto ahorra asta cierto punto la memoria.

otra cosa es asegurarte de que estes compilando en release y no en debug, ya que cuando compilas en debug, tu programa ademas de codigo de ejecucion contiene informacion para depurar tu programa.

La verdad que un programa en .NET siempre consumira mucha memoria en comparacion con un programa nativo(C++ por ejemplo), ya que ademas de tu programa se carga tambien el CLR y las librerias de tiempo de ejecucion.

por ejemplo un simple formulario en ejecucion consume 9MB aproximadamente y un formulario C (Nativo), consume 1MB.

pero .NET tienen ventajas que subsanan este inconveniente, como lo es la facilidad para crear aplicaciones.

otra forma de reducir memoria podria ser usar destruccion de onjetos determinista. esto se hace usando la palabra using al crear tu objeto:

using( Dim Objeto as new Clase())

end

creo que es asi, la verdad el VB.NET no lo manejo muy bien.
en C# seria:

using( Clase objeto = new Clase())
{
objeto.hacerEsto();
objeto.hecerOtro();
}
//en este punto objeto ya ha sido destruido.

ya como alternativa extrema seria usar interoperacion nativa, es decir usar Dlls creadas en C/C++, para las funciones de tus clases.

bueno puedes no ir tan lejos y distribuir en modulos tu aplicacion, es decir crear tus clases en Dlls administradas y llamarlas desde el formulario principal.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:46.