ACCESS.net中内部存款和储蓄器占用的难点

鲁人持竿一叶知秋的观点,系统应用那种方法来调整WorkingSet未有多马虎义,不过望着taskmanager中的数字,确实不是很爽
ACCESS 1

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

后天起来解决系统占用内存过大的难题。

刚刚在网上查到博客堂上也有人进行过切磋,落叶知秋作了不错的表明,看驾驭后有一语成谶之感。在系统中运用SetProcessWorkingSetSize方法做了叁个测试,调用该办法后,占用内部存款和储蓄器从80M降到二M.(TaskManager旁观的结果)根据一叶报秋的传道,那样调整WorkingSet,将有望造成缺页中断,严重影响属性。
可是从使用的事态来看,未有发觉这么的情景,那只怕是自家动用那几个办法的缘由:

在上年做系统的时候,就发现系统占用内部存款和储蓄器大,到当年1十一月,系统运转后占用内部存款和储蓄器达到60M,运行1段时间后达到100M左右(职务管理器监视的结果),到时想各个法子都不曾化解(包涵GC.Collect、析构函数等),后来和灵感之源在MSN上谈论了一下,他以为恐怕是系统中使用MagicLibrary的难点,因而也就束之高阁下来。

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

相关文章