本文主要是介绍降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近做导师的项目是通过Socket通信控制一个库室中所有板子的项目,通过C# WinForm实现的一个PC客户端,但是.NET 的问题一直就是狂吃内存,虽然说内部提供了GC 的功能和智能化,但是内存的回收问题,一直存在困扰,特别是本项目使用的 Winform 程序,由于.NET程序在启动时,是需要由JIT动态编译并加载的,这个加载会把所有需要的资源都加载进来,很多资源是只有启动时才用的。同时由于通过socket控制的板子比较多,运行一天后程序占的内存很多,今天试过多种方法,网上大拿们提供降低Winform占用系统内存的方法有大概下面几种:
- 使用性能测试工具dotTrace 3.0,它能够计算出你程序中那些代码占用内存较多
- 强制垃圾回收
- 多dispose,close
- 用timer,每几秒钟调用:SetProcessWorkingSetSize
(Process.GetCurrentProcess().Handle, -1, -1) - 发布的时候选择Release
- 注意代码编写时少产生垃圾,比如String + String就会产生大量的垃圾,可以用StringBuffer.Append
- this.Dispose();
this.Dispose(True); this.Close();
这篇关于降低Winform占用系统内存的方法-将物理内存的占用挪到虚拟内存里的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!