Método AlzheimerDesarrollando una aplicación en c# la cual necesito mantenerla ejecutando en segundo plano, me encontré con el problema de su abusivo consumo de memoria a corto y largo plazo. Buscando ayuda por medio de foros me encontré con una solución bastante útil Garbage Collector, sin embargo este método, solo libera la memoria bajo ciertas condiciones.

Existe una solución para liberar memoria con el Método Alzheimer, el cual con la ayuda de la dll «kernel32″ y en combinación del uso de «Garbage Collector» dan unos resultados impresionantes y su uso es bastante simple.

Lo primero, es llamar al ensamblado

using System.Runtime.InteropServices;

Luego declarar las dll, la cual llama un metodo llamado SetProcessWorkingSetSize el cual en pocas palabras establece limites al proceso indicado.

[DllImport("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)]
        private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int maximumWorkingSetSize);

Al final crear el Método Alzheimer, que podremos utilizar ya sea con un Timer o al ejecutar cierto proceso.

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

En el Método Alzheimer lo primero que hacemos es llamar al Garbage Collector para liberar todo los objetos que no estén siendo utilizados y al final llamamos al SetProcessWorkingSetSize que proporciona la dll del kernel32 que establecerá los limites de uso de memoria para nuestra aplicación los mas bajo posible y para que luego libere los recursos.

Ahora solo nos queda llamar al método alzheimer() cuando necesitemos liberar memoria y ver los resultados.

Esta información fue obtenida desde nerdcoder, puedes descargar un ejemplo y obtener mayor información aquí: nerdcoder.com

 

Suscribete a nuestra lista

Mantente informado sobre las novedades que ofrecemos en nuestra web, no te llenaremos de Spam ni entregaremos tus datos a terceros.

Gracias por suscribirte a nuestra lista

Pin It on Pinterest

Share This