一次關於ASP變數和對像關閉與不關閉的差別測試
來源:互聯網
上載者:User
對於ASP程式,用到的變數有全域變數,以及一些建立的對象。良好的ASP程式員都有釋放它們的習慣,但釋放與不釋
放之間到底有多少差別呢?所以今天特地對它們進行了一翻測試。
測試內容:測試的全域變數有一個,對象是採用串連SQL的connection對象。
第一次測試:不釋放全域變數而結束程式執行。
第二次測試:釋放全域變數而結束程式執行。
測試前準備:在運行測試前等待伺服器休息5分鐘,保證內容及CPU已經穩定下來。
測試軟硬體:伺服器為平常的PIII550,記憶體256M。裝有Win2000+IIS5.0+SQL2000
用戶端一台為Win2000,採用IE5.5,開一個瀏覽視窗
另一用戶端是Win98,IE5.0,開兩個瀏覽視窗
共測試次數:三個用戶端累計執行到20000停止。
第一次測試報告(不釋放):
開始時記憶體佔用:146464K
開始一個用戶端後記憶體佔用:146996K CPU資源佔用31-32%
開始兩個用戶端記憶體佔用:147316K CPU資源佔用49-52%
後面的記憶體變化為 -> 147304K -> 147328
開始三個用戶端記憶體佔用:147868K CPU資源佔用59-69%
後面的記憶體變化為 -> 147868K -> 147864K -> 147856K -> 147724K -> 147828K
-> 147860K -> 147868K -> 148084K -> 148076K -> 148088K
-> 148040K -> 147940K
結束時記憶體佔用:147940K
三個用戶端停止請求後記憶體釋放情況:
147940K -> 148000K -> 147988K -> 146472K -> 146448K -> 146452K
第二次測試報告(釋放):
開始時記憶體佔用:146652K
開始一個用戶端後記憶體佔用:146996K CPU資源佔用35-38%
開始兩個用戶端記憶體佔用:147700K CPU資源佔用55-62%
開始三個用戶端記憶體佔用:148252K CPU資源佔用53-71%
後面的記憶體變化為 -> 148248K -> 148060K
....
-> 148080K -> 148076K
結束時記憶體佔用:147940K
三個用戶端停止請求後記憶體釋放情況:
148076K -> 147956K -> .... -> 146452
下面是兩次測試在結束用戶端穩定下來的記憶體差別:
第一次:146464-146716 = 252K
第二次:146652-146452 = -200K
第一次耗去了記憶體約252K,最好伺服器好像再也釋放不掉了
第二次很奇怪,到最後記憶體卻節約了200K,不知是什原因。
下面是兩次開始測試和結束測試一瞬時的記憶體使用量情況: