ACCESS.net中内存占用的题材

今天始于解决系统占用内存过十分的问题。

于上年做系统的上,就发现网占用内存大,到当年6月,系统启动后占内存达到60M,运行一段时间后上100M左右(任务管理器监视的结果),到经常想各种方法还并未缓解(包括GC.Collect、析构函数等),后来与灵感的根源在MSN上谈论了一晃,他看可能是系面临动用MagicLibrary的问题,因此也不怕按下来。

方以网上查到博客堂上吧有人进行过讨论,知秋一叶犯了良好的讲,看了后发出茅塞顿开之感。在系面临使SetProcessWorkingSetSize方法做了一个测试,调用该方法后,占用内存从80M降到2M.(TaskManager观察的结果)按照知秋一叶的布道,这样调整WorkingSet,将发出或引致缺页中断,严重影响性。
但是从以的景来拘禁,没有意识这么的场面,这或许是自身利用这主意的来由:

ACCESS 1public static int MinOf(uint pID) 
ACCESS 2ACCESS 3        ACCESS 4{
ACCESS 5            IntPtr hd = OpenProcess((uint)PROCESS_ACCESS_RIGHTS.PROCESS_SET_QUOTA, false, pID);
ACCESS 6            
ACCESS 7            try 
ACCESS 8ACCESS 9            ACCESS 10{
ACCESS 11                if (hd != IntPtr.Zero && System.Environment.OSVersion.Platform == System.PlatformID.Win32NT) 
ACCESS 12ACCESS 13                ACCESS 14{
ACCESS 15                    return SetProcessWorkingSetSize(hd, -1, -1);
ACCESS 16                }
ACCESS 17                else 
ACCESS 18ACCESS 19                ACCESS 20{
ACCESS 21                    return -1;
ACCESS 22                }
ACCESS 23            }
ACCESS 24            finally 
ACCESS 25ACCESS 26            ACCESS 27{
ACCESS 28                CloseHandle(hd);
ACCESS 29            }
ACCESS 30        }        

上述代码来 
http://www.zpcity.com/ArLi//commonprj/cls_MinWorkSize.cs

准知秋一叶的意见,系统采取这种办法来调整WorkingSet没有多可怜意义,但是关押在taskmanager中之数字,确实无是颇爽
ACCESS 31

相关文章