ASP.NET开发网站程序常见错误汇总(3)

http://www.itjxue.com  2015-07-17 01:58  来源:未知  点击次数: 

二、对象只管创建应用,不管释放篇

我们继续用[Sample-01]的代码,我们现在看0004行的代码:

谁会发现它被释放,你不能,我也不能,从来没有被释放过。

"0004"行的代码解释是,要在内存划分一个空间给这个定义的对象dtresult; 系统要划分多大的空间呢?呀,我没有研究过(留给那些有心人吧,呵呵..)。但有一点,要在内存划分一个空间,就是要占用内存。那么内存有多大呢,不是无限大吧,也是有限的,所有运行上述代码的最终结果是,系统的执行效率越来越慢,有人就怀疑,我有内存1到2G的,加上虚拟内存就更大,我只能说你的怀疑没错。可是你的应用程序就用这么一只函数吗?我想肯定不是,所以上百只函数的应用执行对内存的消耗可想而知。如果是后台自动运行的程序,及时是一个function,也会让系统崩溃。这只是一个简单的例子,有更复杂的。像这样的对象应用还有:Dataset, Datatable,DataReader,DataAdapter,Datagrid..等。

那么怎么解决这些问题呢:

2.1在Try catch 语句前定义好所用的对象,如:

2.2释放的语句如下

这不是也释放了吗?我想问的是,如果程序出现异常,它们会释放吗 ?我肯定得告诉大家,它们一定不能释放,为了确保程序的稳定运行,我建议大家都来用Try Catch语句。

(责任编辑:IT教学网)

更多

推荐ASP.NET教程文章