【发布时间】:2009-02-26 17:49:58
【问题描述】:
今天我的任务是改进经典 ASP 页面的性能。在 ASP.NET 中重写代码目前不是一种选择,因此我接受了挑战,以充分利用我可以从页面中获得的每一盎司性能。
该页面包含基本的“SELECT bla bla FROM bla”到几个记录集。 while 循环遍历这些记录集并转储
所以没有什么真正令人震惊的东西。在我开始优化之前,循环大约需要 15 秒才能完成。在 15 秒中,大约 6 秒被 sql 查询占用。
在改变了一些东西之后,我设法把它弄到了 7 秒左右。
我改变的地方是:
我没有执行 SELECT *,而是只选择了我需要的列。查询平均下降到 4 秒。这是一个非常繁重的查询,其中包含视图。
我删除了循环内的所有上下文切换。因此,我将 之类的内容更改为 Response.Write(bla)。
这 3 个子程序被定义为函数,但它们被用作子程序(没有结果)。所以我把函数改成了subs。这有帮助吗?
进行更改后,我发现大部分时间都被其中一个子例程占用了。我今天没有足够的时间来更改子程序,但它包含以下内容:
- 日期函数:Dateadd、Datediff
- 数组函数:Ubound(arr) 和索引引用:arr(I)
- 字符串函数:左、中、右、下、替换
每次调用页面时,该子例程都会运行大约 1600 次。
有人有优化经典asp页面的经验吗?你有什么好的优化技巧吗?我正在寻找的是改进 do ... 循环语句中的代码。
我是一位经验丰富的 ASP.NET 开发人员,并且对 ASP.NET 的性能改进非常了解。经典 ASP 使用不同的“引擎”,所以我想知道是否有人对提高经典 ASP 的性能有任何见解。
谢谢!
M
PS:是的,我知道经典的 ASP 使用 VBScript
【问题讨论】: