内存整理的原理是什么?用C#如何实现?望各位前辈赐教。

解决方案 »

  1.   


                System.Diagnostics.Process[] process;//这个数组存放当前的所有进程信息
                process = System.Diagnostics.Process.GetProcesses();//取得进程信息
                try
                {
                    for (int i = 0; i < process.Length; i++)
                    {
                        EmptyWorkingSet(process[i].Handle);// 依次释放每个进程的内存  
                    }            }
                catch
                {
                    //GC.Collect();
                    //GC.WaitForPendingFinalizers();
                    //MessageBox.Show(ex.ToString()+ps);
                }
                Clipboard.Clear();  //剪切板清理
    还有一种通常叫做深度整理,是先占用系统大部分内存,让其他程序的内存转移到虚拟内存中。再释放占用的内存。这样就可以得到大部分空闲内存了。我也在学习中代码手头上没有
      

  2.   

    基本上是为了骗钱而鼓吹出来的噱头。
    如果有更有效的内存管理模式,微软能不使用吗?程序的内存转移到虚拟内存本身并不是优化。你看微软放到开机里的office工具,就是为了能加快office启动速度的故意行为,更不用说那些prefetch,superfetch技术。