系统启动起来以后,内存占用越来越大,使用析构函数、GC.Collect什么的也不见效果,后来查了好久,找到了个办法,就是使用 SetProcessWorkingSetSize函数。这个函数是Windows API 函数。下面是使用的方法:

C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet =
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用System.Runtime.InteropServices.CharSet.Ansi, SetLastError = true)]
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int maximumWorkingSetSize);
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用public void Dispose()
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用{
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用    GC.Collect();
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用    GC.SuppressFinalize(this);
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用    if (Environment.OSVersion.Platform == PlatformID.Win32NT)
    C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用{
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用        SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1-1);
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用    }
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用}
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用

使用这个函数也会有些问题,具体的可以参见:

http://hi.baidu.com/taobaoshoping/blog/item/a1f6baf52d523a21bd3109f5.html

 

本文章转载自 http://www.cnblogs.com/pdfw/archive/2009/04/22/1441477.html 

系统启动起来以后,内存占用越来越大,使用析构函数、GC.Collect什么的也不见效果,后来查了好久,找到了个办法,就是使用 SetProcessWorkingSetSize函数。这个函数是Windows API 函数。下面是使用的方法:

C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet =
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用System.Runtime.InteropServices.CharSet.Ansi, SetLastError = true)]
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int maximumWorkingSetSize);
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用public void Dispose()
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用{
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用    GC.Collect();
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用    GC.SuppressFinalize(this);
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用    if (Environment.OSVersion.Platform == PlatformID.Win32NT)
    C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用{
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用        SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1-1);
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用    }
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用}
C# 处理应用程序减少内存占用
    

SetProcessWorkingSetSize减少内存占用

使用这个函数也会有些问题,具体的可以参见:

http://hi.baidu.com/taobaoshoping/blog/item/a1f6baf52d523a21bd3109f5.html

 

本文章转载自 http://www.cnblogs.com/pdfw/archive/2009/04/22/1441477.html 

相关文章: