關(guān)于ASP變量和對(duì)像關(guān)閉與不關(guān)閉的差別測(cè)試
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
[p] 對(duì)于asp程序,用到的變量有全局變量,以及一些建立的對(duì)象。良好的asp程序員都有釋放它們的習(xí)慣,但釋放與不釋[br]放之間到底有多少差別呢?所以今天特地對(duì)它們進(jìn)行了一翻測(cè)試。 [/p]
[p] 測(cè)試內(nèi)容:測(cè)試的全局變量有一個(gè),對(duì)象是采用連接sql的connection對(duì)象。[br] 第一次測(cè)試:不釋放全局變量而結(jié)束程序執(zhí)行。[br] 第二次測(cè)試:釋放全局變量而結(jié)束程序執(zhí)行。[br] 測(cè)試前準(zhǔn)備:在運(yùn)行測(cè)試前等待服務(wù)器休息5分鐘,保證內(nèi)容及cpu已經(jīng)穩(wěn)定下來(lái)。[br] 測(cè)試軟硬件:服務(wù)器為平常的piii550,內(nèi)存256m。裝有win2000+iis5.0+sql2000[br] 客戶(hù)端一臺(tái)為win2000,采用ie5.5,開(kāi)一個(gè)瀏覽窗口[br]另一客戶(hù)端是win98,ie5.0,開(kāi)兩個(gè)瀏覽窗口[/p] [p] 共測(cè)試次數(shù):三個(gè)客戶(hù)端累計(jì)執(zhí)行到20000停止。[/p] [p]第一次測(cè)試報(bào)告(不釋放):[/p] [p]開(kāi)始時(shí)內(nèi)存占用:146464k[br]開(kāi)始一個(gè)客戶(hù)端后內(nèi)存占用:146996k cpu資源占用31-32%[br]開(kāi)始兩個(gè)客戶(hù)端內(nèi)存占用:147316k cpu資源占用49-52%[br]后面的內(nèi)存變化為 -> 147304k -> 147328[br]開(kāi)始三個(gè)客戶(hù)端內(nèi)存占用:147868k cpu資源占用59-69%[br]后面的內(nèi)存變化為 -> 147868k -> 147864k -> 147856k -> 147724k -> 147828k[br]-> 147860k -> 147868k -> 148084k -> 148076k -> 148088k[br]-> 148040k -> 147940k[br]結(jié)束時(shí)內(nèi)存占用:147940k[br]三個(gè)客戶(hù)端停止請(qǐng)求后內(nèi)存釋放情況:[br]147940k -> 148000k -> 147988k -> 146472k -> 146448k -> 146452k[/p] [p] [/p] [p]第二次測(cè)試報(bào)告(釋放):[/p] [p]開(kāi)始時(shí)內(nèi)存占用:146652k[br]開(kāi)始一個(gè)客戶(hù)端后內(nèi)存占用:146996k cpu資源占用35-38%[br]開(kāi)始兩個(gè)客戶(hù)端內(nèi)存占用:147700k cpu資源占用55-62%[br]開(kāi)始三個(gè)客戶(hù)端內(nèi)存占用:148252k cpu資源占用53-71%[br]后面的內(nèi)存變化為 -> 148248k -> 148060k [br]....[br]-> 148080k -> 148076k[br]結(jié)束時(shí)內(nèi)存占用:147940k[br]三個(gè)客戶(hù)端停止請(qǐng)求后內(nèi)存釋放情況:[br]148076k -> 147956k -> .... -> 146452[/p] [p]下面是兩次測(cè)試在結(jié)束客戶(hù)端穩(wěn)定下來(lái)的內(nèi)存差別:[/p] [p]第一次:146464-146716 = 252k[br]第二次:146652-146452 = -200k[/p] [p]第一次耗去了內(nèi)存約252k,最好服務(wù)器好像再也釋放不掉了[br]第二次很奇怪,到最后內(nèi)存卻節(jié)約了200k,不知是什原因。[/p] [p]下面是兩次開(kāi)始測(cè)試和結(jié)束測(cè)試一瞬時(shí)的內(nèi)存使用情況:[/p] [p]第一次:146464-147940 = 3476k[br]第二次:146652-148076 = 1324k[/p] [p]內(nèi)存使用情況第一次比第二次多了將近一倍。[/p] [p]這次測(cè)試說(shuō)明釋放變量還是有益處的,特別是當(dāng)系統(tǒng)長(zhǎng)期運(yùn)行的,更是要注意釋放變量,放可保證服務(wù)器資源不會(huì)白[br]白浪費(fèi)而到窮盡。[/p] [p]----------------------------------------------------------[/p] [p]附部分測(cè)試代碼test.asp:[/p] [p]<%option explicit[br]if request("qian")="qian" then[br]application("testnumer") =0[br]response.write "重置為0!"[br]response.end[br]end if[br]if application("testnumer") > 20000 then[br]response.write "結(jié)束!!已經(jīng)達(dá)到2000次"[br]response.end[br]end if[br]%>[br][br][br][br][br] [p][/p] [p][br][/p] [p]<%dim yp[br]application("testnumer") = application("testnumer") + 1[br]response.write "testnumer: " & application("testnumer")[br]initdatabase("yp")[br]initdatabase("yp")[br]initdatabase("yp")[br]initdatabase("yp")[br]yp=second(time)[br]set yp=nothing[br]closedatabase%>[/p] 該文章在 2010/7/8 0:31:04 編輯過(guò) |
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |