快捷搜索:

一份ASP内存的释放的实验报告

实验目的:验证主动开释内存变量是否有代价.

实验原始代码:

内存变更截图1:

截图解释:

CPU的波形变更是由页面自动刷新引起的,不必在意!我们要察看的只是内存线的变更.这是原始状态,内存线维持水平无变更.

好,下面实验正式开始:

第一步:

把原始代码中的

'temp1 = space(1024*1024*50) '50MB

前面的注释号 ' 去掉落,改成

temp1 = space(1024*1024*50) '50MB

再察看内存变更一段光阴

内存变更截图2:

结果:

内存开始呈现方波.

第二步:

接着也把

'temp2 = space(1024*1024*50) '50MB

前面的注释号 ' 去掉落,改成

temp2 = space(1024*1024*50) '50MB

内存变更截图3:

结果:

方波比原本高了一层,成了阶梯形.

第三步:

接着也把

'temp1="" '开关变量

前面的注释号 ' 去掉落,改成

temp1="" '开关变量

看看是否能开释第一个变量所占用的内存空间

内存变更截图4:

结果:

很显着,第二个波锋不见了,看来开释成功了.

第四步:

我们先把代码规复成最初的原始代码,等内存平稳下来后,再把前三步快速做一次,以便在同一个截图里对照内存的变更环境.

内存变更截图5:

结果:

可以很清楚的看到三种环境的不合.无伦履行光阴和内存占用,变量主动开释都比不被动开释的好.

第五步:

接着第三步的代码,把

temp1="" '开关变量

temp2 = space(1024*1024*50) '50MB

改成

'temp1="" '开关变量

temp1 = space(1024*1024*50) '50MB

内存变更截图6:

结果:

再看下步才给结论吧

第六步:

'temp1="" '开关变量

改成

temp1="" '开关变量

看当作果会不会有所不合

内存变更截图7:

结果:

用同一个变量名,纵然再从新赋值,原本的占用过的空间也得不到开释或调换,而且等法度榜样被动开释时,应用的光阴也比手动的慢.

下面把

temp1="" '开关变量

temp1 = space(1024*1024*50) '50MB

更换一下两句的位置

temp1 = space(1024*1024*50) '50MB

temp1="" '开关变量

后的截图8:

结果:

可以看出主动开释比被动的所必要的光阴要少.

实验结论:

主动来开释内存是有感化的,不是某些人所说的要等页面停止才能开释掉落,或者只是呆等法度榜样停止再自动开释,而是在履行历程中也可以工资节制的.分外是法度榜样中必要调用到几个大年夜体积的变量时,尽快开释掉落已无用的变量,不只可以减轻办事器的包袱,也可以加快法度榜样的运行.

假如发明此实验历程或结论有误,迎接斧正.

着末,关于用"" ,empty 或 null 来开释,结果基础是一样,有兴趣的可以自己亲身着手对照试试.至于说用哪个来开释变量更正规或更有效率,我无法在次实验中判断出来,盼望知道的同伙来指教.

附:别的一个不大年夜相关实验

内是否有内容的差别(包括注释)

实验代码:

实验结果:

1.内无内容,内存不变更

2.只有一个 ' 号,内存开始变更

改变前后比较图9:

结果:

,就会履行内的代码,以是今后要留意两者的混用.

还有,在

留意去掉落注释号前后的内存的占用变更,不再截图阐明.

您可能还会对下面的文章感兴趣: