Incremento de memoria

23/06/2006 - 00:32 por koldo | Informe spam
Estoy creando una aplicacion en windows forms y .NET 2.0
Se hace acceso a bases de datos y se utiliza Crystal Reports para
imprimir informes.

Cada vez que abro y cierro una ventana, observo en el Administrador de
tareas el uso de memoria, y cómo esta se va incrementando.

Cuando mas se incrementa es al abrir un informe con el Crystal.

He leido sobre el uso de Dispose pero no suele ser recomendable su uso
explicito ya que hay que esperar a que el Garbage Collector libere la
memoria. No sé si esto es así exactamente.

Tampoco tengo claro si cada vez que cierre una ventana formulario,
debo de utilizar un destructor para cada objeto creado que forme parte
del formulario que voy a cerrar.

¿Existe algun tipo de solucion a esta situacion?
¿Cuál es vuestra experiencia?

Gracias y salu2
 

Leer las respuestas

#1 Saul Muñoz (DsK)
23/06/2006 - 02:18 | Informe spam
Que tal Koldo, en lo personal cuando es muy crítico el aspecto de la memoria
utilizo la siguiente API ojo, revisa todo lo que hace para que veas si te es
util para tus necesidades en cuanto al crystal reports, intenta destruir
cualquier referencia hacia tu reporte, para ver si disminuye el uso de
memoria si no intenta esta API y ve que no te genere ningun conflicto.

namespace GEFA.Gentour.Business {
using System.Diagnostics;


public class clsMemoryManagement {

[DllImport("kernel32.dll", EntryPoint="SetProcessWorkingSetSize")]
static extern int SetProcessWorkingSetSize(IntPtr hProcess, int
dwMinimumWorkingSetSize, int dwMaximumWorkingSetSize);

public static void SwapOutProcess() {
GC.Collect();
GC.WaitForPendingFinalizers();
SetProcessWorkingSetSize(Process.GetCurrentProcess().Handle, -1,
-1);
}
}
}

y ya sólo la instancio como
clsMemoryManagement.SwapOutProcess();

Saludos
"koldo" escribió:

Estoy creando una aplicacion en windows forms y .NET 2.0
Se hace acceso a bases de datos y se utiliza Crystal Reports para
imprimir informes.

Cada vez que abro y cierro una ventana, observo en el Administrador de
tareas el uso de memoria, y cómo esta se va incrementando.

Cuando mas se incrementa es al abrir un informe con el Crystal.

He leido sobre el uso de Dispose pero no suele ser recomendable su uso
explicito ya que hay que esperar a que el Garbage Collector libere la
memoria. No sé si esto es así exactamente.

Tampoco tengo claro si cada vez que cierre una ventana formulario,
debo de utilizar un destructor para cada objeto creado que forme parte
del formulario que voy a cerrar.

¿Existe algun tipo de solucion a esta situacion?
¿Cuál es vuestra experiencia?

Gracias y salu2


Preguntas similares