二十八条改善 ASP 性能和外观的技巧(22-28)

技巧 22:尽可能使用 Server.Transfer 代替 Response.Redirect
技巧 23:在目录 URL 中使用后斜杠
技巧 24:避免使用服务器变量
技巧 25:升级到最新和最出色的
技巧 26:优化 Web 服务器
技巧 27:进行性能测试
技巧 28:阅读资源链接
技巧 22:尽可能使用 Server.Transfer 代替 Response.Redirect
Response.Redirect 让浏览器请求另一个页面。此函数常用来将用户重定向到一个登录或错误页面。因为重定向强制请求新页面,结果是浏览器必须到 Web 服务器往返两次,且 Web 服务器必须多处理一个请求。IIS 5.0 引入了一个新的函数 Server.Transfer,它将执行转移到同一台服务器上的另一个 ASP 页。这样就避免多余的浏览器-Web-服务器的往返,从而改善了总体系统性能以及缩短了用户的响应时间。检查“重定向”中的“新的方向”,上面应该是 Server.Transfer 和 Server.Execute。

另请参见 Leveraging ASP in IIS 5.0,了解 IIS 5.0 和 ASP 3.0 新功能的完整列表。

技巧 23:在目录 URL 中使用后斜杠
一个相关的技巧是确保在指向目录的 URL 中使用后斜杠 (/)。如果您省略了后斜杠,浏览器就会向服务器发出请求,只是为了告诉服务器,它在请求目录。浏览器就会发出第二个请求,将斜杠附加到 URL 后面,只有此后,服务器才能以该目录的默认文档或目录列表(如果没有默认文档且启用了目录浏览的话)响应。附加斜杠可省去第一个、无用的住返。为便于用户阅读,可以省略显示名称中的后斜杠。

例如,写:

1<a href="?http://msdn.microsoft.com/workshop/?" title="?MSDN" web="" workshop?="">http://msdn.microsoft.com/workshop</a>

这也适用于指向 Web 站点上主页的 URL:使用下面的:

  1<a href="?http://msdn.microsoft.com/?">,而不使用 <a href="?http://msdn.microsoft.com?">。   
  2  
  3技巧 24:避免使用服务器变量   
  4访问服务器变量会使 Web 站点向服务器发出一个特殊请求,并收集所有服务器变量,而不只是您请求的那个变量。这种情况类似于,在发霉的阁楼上,在一个文件夹中查找某个文件。当您想要找那个文件时,您必须去阁楼上,先找到文件夹,然后才能找到这份文件。当您请求服务器变量时,发生的情况是一样的 - 您第一次请求服务器变量时,就会使性能受到影响。后面的对其它服务器变量的请求,则不会对性能产生影响。   
  5  
  6决不要访问非限定的 Request 对象(例如,Request("Data"))。对于不在 Request.Cookies、Request.Form、Request.QueryString 或 Request.ClientCertificate 中的项目,则隐式调用 Request.ServerVariables。Request.ServerVariables 集合比其它集合慢得多。   
  7  
  8技巧 25:升级到最新和最出色的   
  9系统组件是恒定的,我们建议您将它们升级到最新和最好的配置。最好升级到 Windows 2000(因此,也应升级到 IIS 5.0、ADO 2.5、MSXML 2.5、Internet Explorer 5.0、VBScript 5.1 和 JScript 5.1)。在多处理器计算机上,实施 IIS 5.0 和 ADO 2.5 可显著改善性能。在 Windows 2000 下,ASP 可以很好地扩展到四个处理器或更多,而在 IIS 4.0 下,ASP 的扩展性不能超出两个处理器。在应用程序中使用的脚本代码和 ADO 越多,升级到 Windows 2000 之后,性能的改善就会越多。   
 10  
 11如果目前还不能升级到 Windows 2000,您可以升级到 SQL Server、ADO、VBScript 和 JScript、MSXML、 Internet Explorer 和 NT 4 Service Packs 的最新版本。它们均可提高性能和可靠性。   
 12  
 13技巧 26:优化 Web 服务器   
 14有多种 IIS 优化参数可以改善站点性能。例如,对于 IIS 4.0,我们常常发现,增加 ASP ProcessorThreadMax 参数(参见 IIS 文档)可以显著改善性能,特别是在倾向于等待后端资源(如数据库)或其它中间产品(如屏幕刷)的站点上。在 IIS 5.0 中,您可能发现启用 ASP Thread Gating 比查找一个 AspProcessorThreadMax 最佳设置效率更高,这一点现在已为大家所熟知。   
 15  
 16有关较好的参考资料,参见下面的优化 IIS。   
 17  
 18最佳的配置设置取决于(其中一些因素)应用程序代码、运行所在的系统硬件和客户机工作负荷。找到最佳设置的唯一方法是进行性能测试,这是我们在下一个技巧中所要讨论的。   
 19  
 20技巧 27:进行性能测试   
 21正如我们在前面已经讲过,性能是一个特征。如果您想要改善站点的性能,那么就制定一个性能目标,然后逐步改进,直到达到目标为止。不要,就不进行任何性能测试。通常,在项目结束时,再作必需的结构调整已经为时太晚,您的客户将为此感到失望。将性能测试作为您日常测试的一部分来进行。可以对单个组件分别进行性能测试,如针对 ASP 页或 COM 对象,或将站点作为一个整体来测试。   
 22  
 23许多人使用单个浏览器请求页面,来测试 Web 站点的性能。这样做就会给您一个感觉,即站点的响应能力很好,但这样做实际上并不能告诉您在负载条件下站点的性能如何。   
 24  
 25一般情况下,要想准确地测试性能,您需要一个专门的测试环境。此环境应包括硬件,其处理器速度、处理器数量、内存、磁盘、网络配置等方面与生产环境的硬件相似。其次,您必须指定客户机的工作负荷:有多少同时的用户,他们发出请求的频率,他们点击页面的类型等等。如果您没有站点实际使用情况的数据,您必须估计一下使用的情况。最后,您需要一个可以模拟预期客户机工作负荷的工具。有了这些工具,您就可以开始回答诸如“如果我有 N 个同时的用户,那么需要多少服务器?”之类的问题。您还可以找出出现瓶颈的原因,并以此为目标进行优化。   
 26  
 27下面列出了一些好的 Web 负载测试工具。我们特别推荐 Microsoft Web Application Stress (WAS) 工具包。WAS 可使您记录测试脚本,然后模拟数百或成千上万个用户访问 Web 服务器。WAS 报告很多统计信息,包括每秒钟的请求数,响应时间分布情况和错误计数。WAS 有丰富的客户机界面和基于 Web 的界面两种,Web 界面可使您进行远程测试。   
 28  
 29一定要阅读 IIS 5.0 Tuning Guide。   
 30  
 31技巧 28:阅读资源链接   
 32下面是一些与性能有关的出色的资源链接。如果您想了解有关信息,请阅读 Developing Scalable Web Applications。   
 33  
 34资源   
 35优化 ASP 脚本   
 36  
 37优化 IIS   
 38  
 39ADO 和 SQL Server   
 40  
 41  
 42ASP 组件和线程模型   
 43  
 44词典组件   
 45  
 46会话状态   
 47  
 48  
 49性能和可扩展性   
 50  
 51工具   
 52  
 53书目   
 54  
 55  
 56ASP Web 站点   
 57  
 58ASP 样式   
 59  
 60XML   
 61  
 62  
 63  
 64优化 ASP 脚本   
 65Developing Scalable Web Applications   
 66  
 67Got Any Cache? Nancy Winnick Cluts 著   
 68  
 69Maximizing the Performance of Your Active Server Pages,Nancy Winnick Cluts 著   
 70  
 7115 Seconds: Performance Section   
 72  
 73Enhancing Performance in ASP - Part I,Wayne Plourde 著   
 74  
 75When is Better Worse? Weighing the Technology Trade-Offs,Nancy Winnick Cluts 著   
 76  
 77Speed and Optimization Resources,Charles Carroll 著   
 78  
 79优化 IIS   
 80The Art and Science of Web Server Tuning with Internet Information Services 5.0   
 81  
 82Leveraging ASP in IIS 5.0,J.D. Meier 著   
 83  
 84Tuning IIS 4.0 for High Volume Sites,Michael Stephenson 著   
 85  
 86Tuning Internet Information Server Performance,Mike Moore 著   
 87  
 88Navigating the Maze of Settings for Web Server Performance Optimization,Todd Wanke 著   
 89  
 90Managing Internet Information Server 4.0 for Performance,Hans Hugli 著   
 91  
 92ADO 和 SQL Server   
 93Top Ten Tips: Accessing SQL Through ADO and ASP,J.D. Meier 著   
 94  
 95Improve the Performance of your MDAC Application,Suresh Kannan 著   
 96  
 97Pooling in the Microsoft Data Access Components,Leland Ahlbeck 和 Don Willits 合著   
 98  
 99SQL Server: Performance Benchmarks and Guides   
100  
101Improving the Performance of Data Access Components with IIS 4.0,Leland Ahlbeck 著   
102  
103Microsoft Data Access Components (MDAC) and ActiveX Data Objects (ADO) Performance Tips,Leland Ahlbeck 著   
104  
105Microsoft SQL Server 7.0 Practical Performance Tuning and Optimization - The Server Perspective,Damien Lindauer 著   
106  
107Microsoft SQL Server 7.0 Practical Performance Tuning and Optimization - The Application Perspective,Damien Lindauer 著   
108  
109Accessing Recordsets over the Internet,Dino Esposito 著   
110  
111ASP 组件和线程模型   
112ASP Component Guidelines,J.D. Meier 著   
113  
114Q243548: INFO: Design Guidelines for VB Components under ASP   
115  
116Threading Models Explained,Nancy Winnick Cluts 著   
117  
118So Happy Together? Using ActiveX components with Active Server Pages,Nancy Winnick Cluts 著   
119  
120Developing Active Server Components with ATL,George Reilly 著   
121  
122Agility in Server Components,Neil Allain 著   
123  
124Building High-Performance Middle-Tier Components with C++,Jon Flanders 著   
125  
126Active Server Pages and COM Apartments,Don Box 著   
127  
128House of COM: Active Server Pages,Don Box 著   
129  
130House of COM: Contexts,Don Box 著   
131  
132House of COM: Performance Trade-offs of the Windows 2000 Component Execution Environment,Don Box 著   
133  
134Building COM Components That Take Full Advantage of Visual Basic and Scripting,Ivo Salmre 著   
135  
136Component Design Principles for MTS   
137  
138词典组件   
139Creating a Page Cache Object,Robert Coleridge 著   
140  
141Abridging the Dictionary Object: The ASP Team Creates a Lookup-Table Object,Robert Carter 著   
142  
143Caprock Dictionary   
144  
145Site Server Commerce Edition includes a dictionary component   
146  
147会话状态   
148Q175167: HOWTO: Persisting Values Without Sessions   
149  
150Q157906: HOWTO: How To Maintain State Across Pages with VBScript   
151  
152XML-based Persistence Behaviors Fix Web Farm Headaches,Aaron Skonnard 著   
153  
154House of COM: Stateless Programming,Don Box 著   
155  
156性能和扩展性   
157Blueprint for Building Web Sites Using the Microsoft Windows DNA Platform   
158  
159Server Performance and Scalability Killers,George Reilly 著   
160  
161Microsoft Visual Studio Scalability Center   
162  
163Fitch &amp; Mather Stocks 2000   
164  
165Tuning the FMStocks Application   
166  
167High-Performance Visual Basic Apps,Ken Spencer 著   
168  
169Duwamish Books,Phase 4   
170  
171Top Windows DNA Performance Mistakes and How to Prevent Them,Gary Geiger 和 Jon Pulsipher 合著   
172  
173Building from Static HTML to High-Performance Web-Farms,Shawn Bice 著   
174  
175工具   
176Microsoft Web Application Stress Tool   
177  
178I Can't Stress It Enough -- Load Test Your ASP Application,J.D. Meier 著   
179  
180Windows DNA Performance Kit   
181  
182Monitoring Events in Distributed Applications Using Visual Studio Analyzer,Mai-lan Tomsen 著   
183  
184书目   
185Professional Active Server Pages 3.0,Wrox Press(特别是第 26 章:Optimizing ASP Performance,George Reilly 和 Matthew Gibbs 合著)。   
186  
187Microsoft Internet Information Services 5.0 Resource Guide(与 Windows 2000 Server Resource Kit 在一起),Microsoft Press。   
188  
189Microsoft Internet Information Server Resource Kit(用于 IIS 4.0),Microsoft Press。   
190  
191Programming Distributed Applications with COM and Microsoft Visual Basic 6.0,Ted Pattison 著,Microsoft Press。   
192  
193Effective COM,Don Box、Keith Brown、Tim Ewald 和 Chris Sells 合著;Addison-Wesley。   
194  
195Developing Web Usability: The Practice of Simplicity,Jakob Nielsen 著,New Riders。   
196  
197ASP Web 站点   
198Microsoft TechNet for IIS   
199  
200LearnASP.com   
201  
2024GuysFromRolla.com   
203  
20415Seconds.com   
205  
206AspToday.com   
207  
208Asp101.com   
209  
210AspLists.com。许多专业的邮件列表包括:   
211  
212Fast Code!   
213ASP Advanced   
214Not NewbieState Management   
215Scalability   
216Visual Basic Components   
217XML   
218C++/ATL Component Building   
219UseIt.com: Web 可用性   
220  
221ASP 样式   
222ASP Best Practices,George Reilly 著   
223  
224ASP Quick Lessons,Charles Carroll 著   
225  
226Planning for ASP,John Meade 著   
227  
228ASP Guidelines,J.D. Meier 著   
229  
230XML   
231Inside XML Performance,Chris Lovett 著   
232  
233Inside MSXML3 Performance,Chris Lovett 著</a></a>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus