麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > ASP > 正文

一份ASP內(nèi)存的釋放的實(shí)驗(yàn)報(bào)告

2020-07-27 13:20:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
實(shí)驗(yàn)?zāi)康?驗(yàn)證主動(dòng)釋放內(nèi)存變量是否有價(jià)值.

實(shí)驗(yàn)原始代碼:


<script language=vbscript runat=server>
Dim temp1,temp2

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

for i = 0 to 5000000 ' 延遲
next

'temp1="" '開(kāi)關(guān)變量

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

for i = 0 to 5000000 ' 延遲
next

Response.write "<meta http-equiv='refresh' content='4;url=http://localhost/memory_test.ASP'>"
</script>


內(nèi)存變化截圖1:


截圖解釋:CPU的波形變化是由頁(yè)面自動(dòng)刷新引起的,不必在意!我們要觀察的只是內(nèi)存線的變化。這是原始狀態(tài),內(nèi)存線保持水平無(wú)變化。

好,下面實(shí)驗(yàn)正式開(kāi)始:

第一步:

把原始代碼中的
'temp1 = space(1024*1024*50) '50MB
前面的注釋號(hào) ' 去掉,改成
temp1 = space(1024*1024*50) '50MB


<script language=vbscript runat=server>
Dim temp1,temp2

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

for i = 0 to 5000000 ' 延遲
next

'temp1="" '開(kāi)關(guān)變量

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

for i = 0 to 5000000 ' 延遲
next

Response.write "<meta http-equiv='refresh' content='4;url=http://localhost/memory_test.ASP'>"
</script>


再觀察內(nèi)存變化一段時(shí)間

內(nèi)存變化截圖2:


結(jié)果:內(nèi)存開(kāi)始出現(xiàn)方波。

第二步:

接著也把
'temp2 = space(1024*1024*50) '50MB
前面的注釋號(hào) ' 去掉,改成
temp2 = space(1024*1024*50) '50MB


<script language=vbscript runat=server>
Dim temp1,temp2

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

for i = 0 to 5000000 ' 延遲
next

'temp1="" '開(kāi)關(guān)變量

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

for i = 0 to 5000000 ' 延遲
next

Response.write "<meta http-equiv='refresh' content='4;url=http://localhost/memory_test.ASP'>"
</script>


內(nèi)存變化截圖3:


結(jié)果:方波比原來(lái)高了一層,成了階梯形。

第三步:

接著也把
'temp1="" '開(kāi)關(guān)變量
前面的注釋號(hào) ' 去掉,改成
temp1="" '開(kāi)關(guān)變量


<script language=vbscript runat=server>
Dim temp1,temp2

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

for i = 0 to 5000000 ' 延遲
next

temp1="" '開(kāi)關(guān)變量

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

for i = 0 to 5000000 ' 延遲
next

Response.write "<meta http-equiv='refresh' content='4;url=http://localhost/memory_test.ASP'>"
</script>


看看是否能釋放第一個(gè)變量所占用的內(nèi)存空間

內(nèi)存變化截圖4:


結(jié)果:很明顯,第二個(gè)波鋒不見(jiàn)了,看來(lái)釋放成功了。

第四步:

我們先把代碼恢復(fù)成最初的原始代碼,等內(nèi)存平穩(wěn)下來(lái)后,再把前三步快速做一次,以便在同一個(gè)截圖里比較內(nèi)存的變化情況。

內(nèi)存變化截圖5:


結(jié)果:可以很清楚的看到三種情況的不同。無(wú)倫執(zhí)行時(shí)間和內(nèi)存占用,變量主動(dòng)釋放都比不被動(dòng)釋放的好。

第五步:

接著第三步的代碼,把
temp1="" '開(kāi)關(guān)變量
temp2 = space(1024*1024*50) '50MB
改成
'temp1="" '開(kāi)關(guān)變量
temp1 = space(1024*1024*50) '50MB


<script language=vbscript runat=server>
Dim temp1,temp2

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

for i = 0 to 5000000 ' 延遲
next

'temp1="" '開(kāi)關(guān)變量

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

for i = 0 to 5000000 ' 延遲
next

Response.write "<meta http-equiv='refresh' content='4;url=http://localhost/memory_test.ASP'>"
</script>


內(nèi)存變化截圖6:


結(jié)果:再看下步才給結(jié)論吧

第六步:


'temp1="" '開(kāi)關(guān)變量

改成
temp1="" '開(kāi)關(guān)變量


<script language=vbscript runat=server>
Dim temp1,temp2

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

for i = 0 to 5000000 ' 延遲
next

temp1="" '開(kāi)關(guān)變量

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

for i = 0 to 5000000 ' 延遲
next

Response.write "<meta http-equiv='refresh' content='4;url=http://localhost/memory_test.ASP'>"
</script>


看看結(jié)果會(huì)不會(huì)有所不同

內(nèi)存變化截圖7:


結(jié)果:用同一個(gè)變量名,即使再重新賦值,原來(lái)的占用過(guò)的空間也得不到釋放或替換(截圖6說(shuō)明),而且等程序被動(dòng)釋放時(shí),使用的時(shí)間也比手動(dòng)的慢(綜合截圖6、7說(shuō)明)。

下面把
temp1="" '開(kāi)關(guān)變量

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

調(diào)換一下兩句的位置
temp1 = space(1024*1024*50) '50MB

temp1="" '開(kāi)關(guān)變量


<script language=vbscript runat=server>
Dim temp1,temp2

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

for i = 0 to 5000000 ' 延遲
next

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

temp1="" '開(kāi)關(guān)變量

for i = 0 to 5000000 ' 延遲
next

Response.write "<meta http-equiv='refresh' content='4;url=http://localhost/memory_test.ASP'>"
</script>


后的截圖8:


結(jié)果:可以看出主動(dòng)釋放比被動(dòng)的所需要的時(shí)間要少(波峰尖)

實(shí)驗(yàn)結(jié)論:

主動(dòng)來(lái)釋放內(nèi)存是有作用的,不是某些人所說(shuō)的要等頁(yè)面結(jié)束才能釋放掉,或者只是呆等程序結(jié)束再自動(dòng)釋放,而是在執(zhí)行過(guò)程中也可以人為控制的。特別是程序中需要調(diào)用到幾個(gè)大體積的變量時(shí),盡快釋放掉已無(wú)用的變量,不但可以減輕服務(wù)器的負(fù)擔(dān),也可以加快程序的運(yùn)行。

如果發(fā)現(xiàn)此實(shí)驗(yàn)過(guò)程或結(jié)論有誤,歡迎指正。

最后,關(guān)于用"",empty 或 null 來(lái)釋放,結(jié)果基本是一樣,有興趣的可以自己親自動(dòng)手比較試試。至于說(shuō)用哪個(gè)來(lái)釋放變量更正規(guī)或更有效率,我無(wú)法在此實(shí)驗(yàn)中判斷出來(lái),希望知道的朋友來(lái)指教。


(出處:Viphot)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲精品一区中文字幕 | 双性精h调教灌尿打屁股的文案 | 国产在线一级片 | 国产精品野外av久久久 | 国产亚洲精品久久久久久网站 | 日韩视频一区二区 | 72pao成人国产永久免费视频 | 欧美视频一二区 | 青青草最新网址 | 国产成人精品日本亚洲语音 | 久久久久久免费 | 亚洲综合视频网 | 97人操| 国产福利视频在线观看 | 全黄裸片武则天艳史 | 成人毛片在线免费看 | 毛片小网站 | 亚洲精品一区国产精品丝瓜 | 亚洲成人免费网站 | 免费一级毛片在线播放视频 | 国产精品成人久久 | 精品国产一级毛片 | 黄色毛片a级 | www.91sese| 欧美成人鲁丝片在线观看 | 男男啪羞羞视频网站 | 久久久久久久久久久久网站 | 毛片免费观看视频 | 日本人乱人乱亲乱色视频观看 | 日本免费中文字幕 | 美国黄色毛片女人性生活片 | 爱性久久久久久久 | 在线视频 日韩 | 欧美精品一区二区久久久 | 欧美毛片在线观看 | 黑人一级片 | 久久久久9999 | 久久另类视频 | 中文字幕在线观看网址 | 午夜精品久久久久久久99热浪潮 | 国产亚洲美女精品久久久2020 |