70多K程序启动时占用10M内存, 什么原因? 这10M大部分是.net虚拟机运行消耗的内存,访问数据库用DATASET时会把数据放到内存里.如果表很大就很占内存.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我是用了大量的DataSet来访问数据库的,但是我用的DataSet都是一个方法内的局部变量, 难到用完后他自己不能及时释放掉吗? 如果把方法得到的DATASET绑定到了控件的DATASOURCE,那么就算出了这个方法,因为引用记数不为0,这个DATASET所占的内存不会被释放掉(而且C#的对象在堆中分配,由GC管理,所以内存不一定会立即被释放.) 主要是.net framework运行需要的内存 .net配套的就是大内存,然后省了程序员的事。大家说是吗? 那你把窗口最小化,占用的内存不就小了,再最大化看看内存有什么变化?这才到哪里,人家Java都不怕,你C#就更不用怕了。 及时dispose(),加快垃圾回收速度 频繁运行dispose(),不是好方法 .NET 的内存管理机制中有一点,如果物理内存较大的话,GC 回收的比较懒,相反就比较勤。如果你想要使用内存的指标好看一些,适时调用一下 GC.Collect(2),这会让运行的程序的内存使用量看起来会少很多。另外,打开了窗口,你马上最小化一次看看,内存量是不是马上降下来了?即使再还原了窗口,内存也不是很多。但随着执行的继续,可能内存量又会上来,再最小化一次,又降下去了。运行过程如果涉及了大量的运算后,建议使用一下 GC.Collect 方法,这仅是为了好看一些。其实没这个必要的。.NET 中,内存用量可能是要相对多一点,但这不是什么缺点。.NET 的内存管理机制是优秀的、卓越的。 AhBian(阿扁)说的最小划任何程序都是这样,只是WINDOWS的页面置换对内存的影响,和程序本身无关。 WPF有些还是需要在C# code 中创建? using WMPREVIEWLib 需要怎么以用这个 数据连接问题 关于水晶报表的问题 关于打开文件 c#下beginsendfile怎么用?它的异步又是什么意思?求大神指点 C#实时读取数据库中的数据 如何使用VisualC# WinForm 实现文件上传功能 急! 请求详细的c#类库结构图 一个小问题,文本框的内容不能用鼠标选择,求救!! c#中的组件、类、用户供件都有什么区别 关于c#中的委托运用?
DATASET绑定到了控件的DATASOURCE,
那么就算出了这个方法,
因为引用记数不为0,
这个DATASET所占的内存不会被释放掉
(而且C#的对象在堆中分配,由GC管理,
所以内存不一定会立即被释放.)
这才到哪里,人家Java都不怕,你C#就更不用怕了。