Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/05/2006, 02:16
Nivel7
 
Fecha de Ingreso: abril-2006
Ubicación: Acapulco Gro. México
Mensajes: 483
Antigüedad: 18 años, 10 meses
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.