日期:2008-09-02  浏览次数:20945 次

三、启用缓冲对性能的影响有多大?

如果启用缓冲,则在整个页面处理完毕之前服务器不会向浏览器发送页面内容。缓冲可以通过两种方式启用:通过在ASP页面内设置Response.Buffer属性,或通过服务器设置。下面分别测试这两种方法。


3.1 通过脚本启用缓冲

在ASP脚本的前面加入Response.Buffer=True,IIS将缓冲页面内容:
< % OPTION EXPLICIT
Response.Buffer = true
Dim FirstName
...
/app1/buffer__1.ASP片断

最好记录 = 7.05 毫秒/页
响应时间 = 6.08 毫秒/页
差 额 = -0.97 毫秒 (减少 13.7%)




效率大大提升了一步,不过下面还有更好的。

3.2 通过配置服务器启用缓冲

缓冲在IIS 5.0中默认是打开的,II4 4.0需要手工设置。设置方法如下:打开网站的属性对话框。在这个对话框中,选择主目录页上的配置按钮,然后在“应用程序选项”下选中“启用缓冲”。进行本次测试之前我们先删除了Response.Buffer语句。
最好记录 = 7.05 毫秒/页
响应时间 = 5.57 毫秒/页
差 额 = -1.48 毫秒 (减少 21.0%)




这是目前为止我们所看到的最快的应答,比以前最好的记录降低了21%的应答时间。从现在开始,以下的测试将以这个结果作为基准。

3.3 意见

缓冲是改善性能的一种极好的方法,因此将服务器设置成默认启用缓冲是具有重要意义的。如果由于某种原因,启用缓冲导致了页面行为不正常,只需在该页面内加上Response.Buffer=False即可。启用缓冲时,在整个页面处理完毕之前用户不会看到任何内容,这是它的一个缺点。因此,对于复杂的页面,偶尔地调用Response.Flush更新浏览器内容不失为一种好的选择。

现在我们又得到了下面这条规则:

始终通过服务器配置启用缓冲。