快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

asp性能测试报告(转)(八)

使用过程和函数对于代码的组织和维护有着很大的好处,特殊是页面中部分代码需要多次使用的时候。不过此时为了完成一样的处理任务要多出一次函数(或过程)的调用,这是它的缺点。从理论上看,函数块内的变量具有更好的效率。下面我们来看看这两个问题的测试结果。

   8.1 将Response.Write语句移入子过程

   在这个测试中,我们只把Response.Write语句放到了子过程里面。
...
CALL writeTable()

SUB writeTable()
Response.Write("< html >" & _
"< head >" & _
...
"< tr >< td >< b >EMail:< /b >< /td >< td >" & EMail & "< /td >< /tr >" & _
"< tr >< td >< b >Birth Date:< /b >< /td >< td >" & BirthDate & "< /td >< /tr >" & _
"< /table >" & _
"< /body >" & _
"< /html >")
END SUB

/app2/function1.asp片断

基  准 = 5.57 毫秒/页
响应时间 = 6.02 毫秒/页
差  额 = +0.45 毫秒 (增加8.1%)




   和预期的相同,子过程调用增加了额外的页面处理负担。

   8.2 将所有脚本移入子过程

   在这个测试中,Response.Write和所有的变量声明都移到了子过程里面。
< % OPTION EXPLICIT
CALL writeTable()

SUB writeTable()
Dim FirstName
...
Dim BirthDate
FirstName = "John"
...
BirthDate = "1/1/1950"
Response.Write("< html >" & _
"< head >" & _
" < title >Response Test< /title >" & _
"< /head >" & _
"< body >" & _
"< h1 >Response Test< /h1 >" & _
"< table >" & _
"< tr >< td >< b >First Name:< /b >< /td >< td >" & FirstName & "< /td >< /tr >" & _
...
"< tr >< td >< b >Birth Date:< /b >< /td >< td >" & BirthDate & "< /td >< /tr >" & _
"< /table >" & _
"< /body >" & _
"< /html >")
END SUB

/app2/function2.asp片断

基  准 = 5.57 毫秒/页
响应时间 = 5.22 毫秒/页
差  额 = -0.35 毫秒 (减少6.3%)




   虽然仍然有着附加的函数调用,把变量声明放到函数内部居然使性能增加到超过基准,这是一个值得关注的结果!我们得到了如下规则:

假如页面中部分代码要使用一次以上,用函数封装它们。
假如合适的话,把变量声明也移到函数里面。




返回类别: 教程
上一教程: Dictionary在权限治理中的应用
下一教程: 微软建议的ASP性能优化28条守则

您可以阅读与"asp性能测试报告(转)(八)"相关的教程:
· asp性能测试报告(转)(二)
· asp性能测试报告(转)(五)
· asp性能测试报告(转)(六)
· asp性能测试报告(转)(一)
· asp性能测试报告(转)(四)
    微笑服务 优质保证 索取样品