提高ASP性能的最佳选择第二部分(2)

来源:csdn 时间:2007-08-15 12:46:00 

使用Option Explicit 会使性能有实质改变吗?

  在一个ASP页面的顶部设置Option Explicit 以要求所有的变量在使用之前都要在页面上进行声明。这有两个原因。首先应用程序可以更快地处理变量的存取。其次,这样可以防止我们无意中错用变量的名字。在这个测试中我们移走Option Explicit 引用和变量的Dim 声明。

  基准值 = 5.57 msec/page
   反应时间= 6.12 msec/page
   差 = +0.55 msec (9.8% 增加)、

  尽管有一些代码行从页面中去掉了,反应时间却依然增加了。所以尽管使用Option explicit 有时候费时间,但是在性能上却有很显著的效果。因此我们又可以增加一条规则:在VBScript中总是使用Option explicit。

是否应该把脚本逻辑放在子程序和函数区?

  用函数和子程序来组织和管理代码是一个很好的方法,特别是当一个代码区在页面中多次使用的情况。缺点是要在系统上增加一个做相同工作的额外函数调用。子程序和函数的另一个问题是变量的范围。从理论上说,在一个函数区内指定变量更有效。现在我们看看这两个方面如何发生作用。

  将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 msec/page
   反应时间= 6.02 msec/page
   差 = +0.45 msec (8.1% 增加)

  同预料中一样,子程序调用给页面带来了额外的负担。

  将所有脚本移入子程序中

  在这个测试中,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 msec/page
   反应时间= 5.22 msec/page
   差 = -0.35 msec (6.3% 降低)

  非常有趣!尽管将变量移到函数范围内增加了额外的函数调用,但实际上却提高了性能。我们又可以增加以下规则:

  * 在一个页面上,如果代码要使用一次以上,就将代码封入函数区。
   * 适当时候,将变量声明移到函数范围内。

标签:ASP,提高性能,缓冲器,注释,包含文件
0
投稿

猜你喜欢

  • Python 远程开关机的方法

    2022-06-19 18:12:30
  • 使用tensorflow实现矩阵分解方式

    2022-04-17 17:01:17
  • python 存储json数据的操作

    2022-10-02 13:14:14
  • 好用的Python编辑器WingIDE的使用经验总结

    2022-01-15 06:23:10
  • python中字符串数组逆序排列方法总结

    2023-04-18 07:19:08
  • Pytorch中torch.argmax()函数使用及说明

    2021-11-24 14:49:31
  • pycharm 设置项目的根目录教程

    2021-02-05 05:12:31
  • Python获取android设备cpu和内存占用情况

    2023-02-25 20:46:47
  • debug case: onsubmit=return false依然能提交

    2009-01-18 13:07:00
  • 解析MySQL创建外键关联错误 - errno:150

    2024-01-16 03:41:14
  • 详解Go操作supervisor xml rpc接口及注意事项

    2024-05-22 10:30:41
  • Python入门基础之import机制

    2023-12-25 11:39:12
  • ASP.NET中URL Routing和IIS上URL Rewriting的区别

    2024-06-05 09:25:27
  • Pytorch 使用tensor特定条件判断索引

    2023-01-18 16:30:23
  • Python语言实现SIFT算法

    2022-12-30 17:58:14
  • 浅谈django url请求与数据库连接池的共享问题

    2024-01-26 00:12:40
  • Nodejs 数组的队列以及forEach的应用详解

    2024-05-02 16:18:39
  • SQLServer 2005 控制用户权限访问表图文教程

    2024-01-28 02:10:57
  • 十分钟轻松掌握dataframe数据选择

    2021-03-03 11:11:40
  • python wsgiref源码解析

    2023-10-20 10:56:27
  • asp之家 网络编程 m.aspxhome.com