| 广告招租,e-mail:yesize@hotmail.com
|
|
广告招租,e-mail:yesize@hotmail.com
对于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,不知是什原因。 下面是两次开始测试和结束测试一瞬时的内存使用情况: 第一次:146464-147940 = 3476K 第二次:146652-148076 = 1324K 内存使用情况第一次比第二次多了将近一倍。 这次测试说明释放变量还是有益处的,特别是当系统长期运行的,更是要注意释放变量,放可保证服务器资源不会白 白浪费而到穷尽。 ---------------------------------------------------------- 附部分测试代码test.asp: <%Option Explicit If Request(qian)=qian Then Application(TestNumer) =0 Response.Write 重置为0! Response.end End If If Application(TestNumer) > 20000 Then Response.Write 结束!!已经达到2000次 Response.end End If %> <!-- #include file=inc/setup.asp --> <!-- #include file=inc/popu_fun.asp --> <html> <head> <title>Untitled Document</title> <meta http-equiv=Content-Type content=text/html; charset=gb2312> <meta http-equiv=refresh content=0> </head> <body bgcolor=#FFFFFF text=#000000> </body> </html> <%dim yp Application(TestNumer) = Application(TestNumer) + 1 Response.Write TestNumer: & Application(TestNumer) initDatabase(YP) initDatabase(YP) initDatabase(YP) initDatabase(YP) yp=second(time) Set yp=nothing closedatabase%>
版权说明:作品来源于网上,版权归作者所有,如果无意中侵犯了您的版权,请来信告知,本站将在3个工作日内删除。yesize@hotmail.com |
|