当前位置:首考文秘网>范文大全 > 公文范文 > ASP.NET性能优化设计

ASP.NET性能优化设计

时间:2023-05-18 18:55:04 公文范文 来源:网友投稿

摘 要:本论文的研究对象是网站性能优化,首先通过研究ASP.NET网站的体系结构,对优化技术做了一定的分析,然后采用了静态页面的优化,字符串转化的优化,字符串连接的优化这几种措施对Web应用程序进行了优化。

关键词:性能优化;缓存;测试

中图分类号:TP202+.7 文献标识码:A

ASP.NET Performance Optimization Design

ZHANG Yi-bo

(Henan Economy and Trade Vocational College,Henan Zhengzhou 450053)

Key words: optimizing ASP.NET;applications cache;test

ASP.NET又叫ASP+,它是MicroSoft推出的新一代Active Server Pages脚本语言。ASP.NET是微软发展的新型体系结构.NET的一部分,它的全新技术架构会让每一个人的网络生活都变得更简单。ASP.NET吸收了ASP以前版本的最大优点并参照Java、VB语言的开发优势加入了许多新的特色,同时也修正了以前的ASP版本的运行错误。

1 ASP.NET性能优化的思考

现在网站已经进入了人们的生活,打开互联网,各式各样的网站便呈现在用户面前,从网站的特色到别出心裁的设计,无一不体现出开发人员希望自己的网站能被用户所接受和喜爱,不过,现在的用户对网站的功能和性能都有着很高的要求,没人会在一个响应缓慢的网页停留多久。因此我们需要一些提高网站性能的方法,在保证网站现有功能的情况下,提高响应时间和吞吐量。

ASP.NET可以缓存ASP.NET页所生成的部分响应或所有响应,在ASP.NET中将这种技术称为输出缓存。可以在发出请求的浏览器、响应请求的Web服务器以及请求或响应流中任何其他具有缓存功能的设备(如代理服务器)上缓存页。缓存提供了一个强有力的方式来提高Web应用程序的性能。缓存功能允许利用缓存满足对页的后续请求,这样就不需要再次运行最初创建该页的代码。对站点中访问最频繁的页进行缓存可以充分地提高Web服务器的吞吐量。

2 静态页面性能优化设计

2.1页面输出缓存工作流程

页面输出缓存,是指将已生成的页面存放在输出缓存中,当对该页面新的请求出现时,不需要再重复页面的生成过程,直接从输出缓存中取出并返回给客户端。页面输出缓存可以实现对整个页面或部分页面的缓存,当对整个页面进行缓存时,更多的是出于性能的考虑,而非页面状态的维护。图1显示了客户端如何从输出缓存中获取页面的过程,图中的序号表示了工作的流程:

开始的几步是客户端对某一页面发出第一次请求的情况:

(1)客户端向服务器端发送请求(Request),请求通过HTTP runtime中功能模块的处理,向Page Handler请求页面;

(2)由于是第一次发送请求,Page Handler不能在中找到已编译好(precompiled)的页面,因此从服务器硬盘中获取对应的页面文件,并将该页面文件发送到ASP.NET引擎中进行解析;

(3)ASP.NET页面文件通过解析生成页面类;

(4)页面类被编译成.NET装配件(Assembly),并存储在硬盘中;

(5)为页面类创建一个实例(class instance);

(6)将页面实例作为客户响应(response)发送回客户端;

下面的步骤是没有使用输出缓存的情况:

(7)与第(1)步一样,客户端请求通过处理被传送到Page Handler请求页面;

(8)Page Handler发现了之前已编译好的页面,则创建该页面的实例;

(9)将页面实例发送回客户端;

下面的步骤是使用输出缓存的情况:

(10)和(11)与上面的步骤一样,创建页面的实例;

(12)将页面实例存储在ASP.NET的输出缓存中;

(13)页面实例作为响应返回客户端;

下面可以直接从输出缓存中获取页面:

(14)客户端向服务器发送请求(Request);

(15)在HTTP runtime处理请求的过程中,会在输出缓存中查找是否有之前生成好的页面实例,如果找到,则直接从输出缓存中取出该实例,发送回客户端。

从上面的过程我们可以看到,通过ASP.NET的页面输出缓存,相同的页面只需在第一次请求时进行编译和实例化,后续的请求通过输出缓存就能得到满足,大大减少了服务器端的工作量,提高了系统性能。我们还可以注意到,在ASP.NET的架构中,即使不使用输出缓存,页面也只需编译一次,如(7)(8)(9)步所示,性能与以前相比已有很大提高,而使用输出缓存则使服务器对请求的响应速度更快。此外,输出缓存的作用域为整个应用程序(Application Scope),因此,所有的客户端请求和会话都可以从输出缓存中获取缓存的页面。

2.2页面片段缓存

有时缓存整页是不可行的--可能必须针对每个请求来创建或自定义该页的各部分。在这种情况下,标识那些构造成本高并且适于缓存的对象或数据通常是值得的。标识了这些项后,可创建它们一次然后将它们缓存一段时间。此外,片断缓存还可用于缓存页输出的各区域。在ASP. NET中,页面片断缓存一般用来存放自定义用户控件。

2.3页面数据缓存

页面数据缓存提供了一种编程方式,可通过键/值将任意数据存储在内存中,该缓存机制类似于Session。应用程序数据缓存的主要功能是在内存中存储各种与应用程序相关的对象。通常这些对象都需要耗费大量的服务器资源才能创建。因此,对这些对象实施缓存有着明显的益处。使用应用程序缓存与使用应用程序状态类似。但是,与应用程序状态不同的是,应用程序数据缓存中的数据是容易丢失的,即数据并不是在整个应用程序生命周期中都存储在内存中。

应用程序数据缓存的优点是由ASP.NET管理缓存,它会在项过期、无效时移除缓存中的项,还可以配置应用程序缓存,以便在移除项时通知应用程序。

在ASP.NET中使用Cache类实现应用程序数据缓存。Cache类可以通过使用键/值对的形式,对需要缓存的对象实施缓存,而且通过Cache类还可以设置缓存的有效期、依赖性和优先级等特性。

当首次加载时,页面将从数据库中取回数据填充到DataSet中,将其绑定到DataGrid,同时将它存储到缓存中。以后数据缓存期内的页面请求,就可以从缓存中得到数据,执行速度自然会提高了。

3 在缓存页面中加入动态内容

在许多情况下,我们需要缓存页面的一部分,而不是整个页面。例如,在某个Web站点主页上,需要同时显示随机的标题广告和数据库表中的记录。如果缓存整个页面,每个用户都将在每次请求的页面上看到同一个标题广告。

要处理这种同时混有动态内容和缓存内容的问题,一种方法是使用Web用户控件。因为可以为Web用户控件添加 OutputCache 指令,所以即使不缓存包含页面的内容,也可以缓存Web用户控件的内容。

但有时候可能会事与愿违。虽然可以使用Web用户控件在动态页面上添加缓存的内容,但很多情况下,我们实际上是想在缓存的页面中添加动态内容。例如,假设我们要缓存整个页面的内容,只留一小块区域用于显示当前用

户的用户名。这种情况下最好使用Post-Cache Substitution。

4 结束语

对于利用缓存技术确实能够极大的提高ASP.NET应用程序的性能,这是一种相当普遍的技术,已经被许多的开发人员所广泛的使用。相对与缓存这种大幅度的性能优化,对程序语言结构字符串的优化无疑是属于细节方面的优化,这种优化不会象缓存那样马上就能看到结果,但是量变引起质变,每次对语言的精练修改带来的几百毫秒的性能提升,积累起来后会使整个程序的性能发生变化。因此我们在优化的时候也不能放过那些细节。

参考文献:

[1]普赖斯Price, Jason. C#数据库编程从入门到精通[M].北京:人民邮电出版社, 2002: 20-26.

[2]Richard Anderson, Brlan FrMcis. professional asp. net[M].北京: 清华大学出版社, 2005: 180-320.

[3]Jeffrey Hasan, Kenneth Tu. Performance Tuning and Optimizing ASP. NET Applications[M].北京: 清华大学出版社,2003:7-400.

[4]Ashish Banerjee. C# Web服务高级编程[M].北京: 清华大学出版社, 2004: 5-70.

推荐访问:优化设计 性能 ASP net

版权所有:首考文秘网 2015-2024 未经授权禁止复制或建立镜像[首考文秘网]所有资源完全免费共享

Powered by 首考文秘网 © All Rights Reserved.。备案号:冀ICP备15026071号-91