最优化ASP程序性能(转)

    Active Server Pages可以让动态页面很快地执行,但是,在代码中和数据库的连接上加入一些技巧,就能让程序更快地执行。这是一篇关于如何精制脚本程序以及ASP特征来达到最大速度的文章。任何在用户点击按钮到在屏幕上出现结果间延迟都会让用户茫然,对于一个商业站点,这就意味着潜在的用户损失。

ASP脚本的尺寸

   我们也许不能控制用户的带宽,但是通过优化ASP站点,我们的确能够使应用达到最佳性能。许多潜在的性能收获可以通过系统调整,而不是改变代码。

   因素

   首先,有哪些因素可能影响ASP程序的性能?很不幸,有许多吗?这里仅仅是一些:

有限的带宽

服务器端的处理器和其他硬件的速度

在服务器上运行的其他进程(比如那些OpenGL屏幕保护程序中的一个)

数据库连接模式,连接池,或者单独的数据库(比如Oracle、SQLServer、Access)

使用的语言

存储过程和SQL

使用未编译组件,而不是VB或者JavsScript的ASP

良好的编程习惯,比如对错误的处理

   对于一个有经验的具备良好IIS知识的开发者来说,以上一些特征是很平常的,但是另外一些可能非常复杂。在这篇文章中,让我们来研究一下如何做才能节省毫秒级别的时间,而不是试图面面俱到。

   你的ASP脚本程序对于实现的功能是否显得过长?这就会从开始影响程序的性能。对于收集信息和格式化输出,ASP脚本是非常有用的,但是脚本是按照行来解释执行的,所以代码越长,执行时间越长。

   如果有一个很长的ASP脚本程序,怎么样才能减少长度呢?这里有一些建议。

   你可以将它们转换为服务器端组件,换言之,就是创建一个Visual Basic DLL文件,或者使用任何现代的Windows 程序语言和COM兼容语言来建立一个未编译组件,并且在服务器上注册。关于这个功能的教程请参阅http://www.webdevelopersjournal.com/articles/activex_for_asp.html。一个编写很好的ActiveX组件不仅能大幅度提高速度,而且,它还能大大地提高你的软件的保护程度,特别是你为第3方开发ASP程序时。

   因为脚本是一行行解释执行的,所以排除多余的脚本或者建立有效率的脚本,就能提高程序性能。如果在一个单一页面中有成百行的ASP脚本,你就可能很好地将程序分割成用户、商业和数据服务部分。实际上,如果这么做了,你就会发现一些多余的代码。比如,如果需要显示几个表格,就可以编写一个通用的表格显示函数,这样,在需要的地方调用就可以了。

   与尺寸相关的另外一个问题就是包含文件的长度。当执行一个#include文件时,整个文件都被调入,就象在被包含的文件中存在一样。所以,如果有一个甬余的包含文件,其中包含了许多全局方法和变量定义,那么就请注意它们将被调入每一个包含它们的文件中,而不管是否可用。ASP缓存了所有的扩展代码,导致了效率低下的搜索。在这种情况下,包含文件必须变小。尽管包含文件被服务器处理为单独的请求,但是过多的使用#include,就会导致下载时间的过度增加。

< !-- #include file="Header.asp" -- >

< !-- #include file="Footer.asp" -- >

< SCRIPT language="vbscript" runat="server" >

Sub Main()

WriteHeader

WriteBody

WriteFooter

End Sub

Sub WriteBody()

...

End Sub

Main ‘call sub Main

< /SCRIPT >

   如果脚本很长,注意要使用 Response.IsClientConnected 命令,这将避免因客户端不再连接时CPU浪费运行循环。

< %

‘check to see if the client is connected

If Not Response.IsClientConnected Then

‘still connected so proceed

Else

‘disconnected

End If

% >

分散ASP代码和HTML语言命令

有人这么做吗?当描述表格时,在ASP和HTML进行切换,比如:

< HTML >

< BODY >

< %

Set MyConn = Server.CreateObject("ADODB.Connection")

MdbFilePath = Server.MapPath("sample.mdb")

MyConn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & MdbFilePath & ";"

SQL_query = "SELECT * FROM Friends"

Set RS = MyConn.Execute(SQL_query)

WHILE NOT RS.EOF

% >

< LI >< %=RS("Name")% >: < A HREF="< %=RS("Link")% >" >Homepage< /A >

< %

RS.MoveNext

WEND

% >

< /BODY >

</html>

最优化ASP程序性能(转)

时间: 2024-11-10 13:38:19

最优化ASP程序性能(转)的相关文章

asp优化:ASP程序性能测试报告

纲要:ASP动态生成的内容以什么方式输出效率最高?最好用哪种方法提取数据库记录集?本文测试了近20个这类ASP开发中常见的问题,测试工具所显示的时间告诉我们:这些通常可以想当然的问题不仅值得关注,而且还有出乎意料的秘密隐藏在内. 一.测试目的 本文的第一部分考察了ASP开发中的一些基本问题,给出了一些性能测试结果以帮助读者理解放入页面的代码到底对性能有什么影响.ADO是由Microsoft开发的一个通用.易用的数据库接口,事实证明通过ADO与数据库交互是ASP最重要的应用之一,在第二部分中,我们

提高ASP.NET应用程序性能的十大方法

一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果你是用动态的SQL语句来返回多个数据集,那我建议你用存储过程来替代动态的SQL语句.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不用在过滤数据,

11个显著提升 ASP.NET 应用程序性能的技巧——第1部分

采用 ASP.NET 和 IIS 构建 Web 应用程序并将其托管到 Web 服务器上极其简单,但是许多可提升 Web 应用程序性能的机会或隐藏配置同样不能忽视.本系列博文将介绍一些简单但却可以应用于任何 Web 应用程序的技巧,而它们却是经常被忽略或遗忘的. 1- 内核模式缓存--这是广泛用于程序编写的主要工具之一,可加速 Web 应用程序.但是大多数时候,很少开发者以最佳方式应用内核模式缓存,仅仅发挥其部分主要优势.由于所有 ASP.NET 请求均会经历不同阶段,因此可在不同级别使用缓存,具

asp.net提高程序性能的技巧(一)

[摘 要] 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多的信息请参考<Improving ASP.NET Performance>一书. 1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响.系统将用户

ASP.NET 性能监控和优化入门

关键要点: 只有与应用指标相关联,基础设施指标才能最大发挥作用. 高效性能优化的关键在于性能数据. 一些APM工具为ASP.NET提供了开箱即用的支持,这样入门使用ASP.NET仅需最小限度的初始设置. 代码分析工具为程序性能给出了最为详尽的视图. 轻量级分析工具给出了网页性能的实时视图,可用在开发环境和生产环境中. “这个网页打开太慢了!”,对Web网站这样的抱怨是经常性的和普遍性的,尤其是自从Web应用开始逐渐替代桌面应用以来.虽然Web带来了全球交付这样的理想特性,但是也在性能层面带来了相

ASP.NET性能调优

性能调优 最佳实践的核心就是旨在提高网站性能. Excetional Performance团队总结出了一系列可以提高网站速度的方法.可以分为7大类34条.包括内容.服务器.cookie.CSS.Javascrīpt.图片.移动应用等七部分. 其中内容部分一共十条建议: 一.内容部分 尽量减少HTTP请求 减少DNS查找 避免跳转 缓存Ajxa 推迟加载 提前加载 减少DOM元素数量 用域名划分页面内容 使frame数量最少 避免404错误 1.尽量减少HTTP请求次数 终端用户响应的时间中,有

ASP.NET 性能优化

一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不用在过滤数据,这是

Asp.net性能优化技巧

[摘 要] 我只是提供我几个我认为有助于提高写高性能的asp.net应用程序的技巧,本文提到的提高asp.net性能的技巧只是一个起步,更多的信息请参考<Improving ASP.NET Performance>一书. 1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响.系统将用户

[.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能

[.net 面向对象程序设计进阶] (15) 缓存(Cache)(二) 利用缓存提升程序性能 本节导读: 上节说了缓存是以空间来换取时间的技术,介绍了客户端缓存和两种常用服务器缓布,本节主要介绍一种.NET中特别重要的缓布技术Cache.利用Cache提升程序性能. 1. 缓存Cache的命名空间 .NET中对缓存有两个命名空间 命名空间1:System.Web.Caching 命名空间2:System.Runtime.Caching 引用范围:这两个命名空间,都可以在Web和非WEB应用程序中