首页 > 其他 > 详细

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

时间:2014-10-08 15:44:15      阅读:259      评论:0      收藏:0      [点我收藏+]

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

bubuko.com,布布扣
bubuko.com,布布扣[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll", EntryPoint = "SetProcessWorkingSetSize", ExactSpelling = true, CharSet =
bubuko.com,布布扣System.Runtime.InteropServices.CharSet.Ansi, SetLastError = true)]
bubuko.com,布布扣private static extern int SetProcessWorkingSetSize(IntPtr process, int minimumWorkingSetSize, int maximumWorkingSetSize);
bubuko.com,布布扣
bubuko.com,布布扣public void Dispose()
bubuko.com,布布扣bubuko.com,布布扣{
bubuko.com,布布扣    GC.Collect();
bubuko.com,布布扣    GC.SuppressFinalize(this);
bubuko.com,布布扣
bubuko.com,布布扣    if (Environment.OSVersion.Platform == PlatformID.Win32NT)
bubuko.com,布布扣    bubuko.com,布布扣{
bubuko.com,布布扣        SetProcessWorkingSetSize(System.Diagnostics.Process.GetCurrentProcess().Handle, -1-1);
bubuko.com,布布扣    }
bubuko.com,布布扣}
bubuko.com,布布扣

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

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

 

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

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

原文:http://www.cnblogs.com/qiyecao/p/4011104.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!