改善ASP.NET2.0性能方法研究

2009-04-27 10:03吴丽萍张林霞于广州
商情 2009年1期
关键词:控件页面应用程序

吴丽萍 张林霞 于广州

【摘 要】本文首先简单介绍了asp.net2.0的概括和特性,然后列举出几个影响asp.net应用程序性能的标准,最后结合开发asp.net2.0应用程序的经验总结出了几条改进asp.net2.0应用程序性能的方法。

【关键词】ASP.NET2.0web调试

一、ASP.NET 2.0新特性

ASP.NET 2.0技术增加了大量方便、实用的新特性。ASP.NET 2.0主要提供控件、页面框架、服务与APIs等3个方面的技术特性。

1.控件在ASP.NET 1.x时代,由于内置服务器控件数量有限、功能覆盖面窄。为了消除这个技术软肋,ASP.NET 2.0做出了突破性改进。在ASP.NET 2.0中,新增数十个服务器控件。根据控件功能特征,可分为:数据控件(包括数据源控件和数据绑定控件)、登录系列控件、Web部件、站点导航控件和其他控件等。这些服务器控件对于提高工作效率,降低开发成本有着重要作用。2.页面框架在页面框架方面,ASP.NET 2.0同样做出了重大改进,主要体现在以下4项技术特性:母版页、主题和皮肤、编译机制和本地化。母版页特性在大型Web站点中应用广泛,它能够在一定程度上代替框架页功能,从而迅速建立具有统一布局和外观的页面,并且有效降低维护人员的工作强度。主题和皮肤是ASP.NET 2.0的一项新增功能,使用此功能可以一次性设置一种类型的服务器控件外观样式。该外观可方便地应用于单个页面、整个Web应用程序,甚至整个服务器。在应用程序编译方面,ASP.NET 2.0提供了几种替代方案,从而扩大了编译的选择范围,开发人员可以根据特定需要进行选择。另外,ASP.NET 2.0在本地化方面也做出了一些改进。

3.服务与APIS这个部分包括的新特性在ASP.NET 2.0中占有较大比例,主要包括成员资格管理、角色管理、用户配置、数据缓存、配置与管理工具等。利用这些功能,可以快速实现用户和角色管理、个性化用户配置、数据缓存、应用程序可视化配置等任务。以成员资格和角色管理功能为例,在ASP.NET 1.x时代,实现这两项功能是比较繁琐和困难的;而在ASP.NET 2.0中不仅提供默认数据库表,而且只需调用几个简单的方法,就能够轻松地实现成员和角色管理功能。

二、影响ASP.NET应用程序性能的度量标准1.执行时间

处理一个请求所需的时间,通常按服务器向客户端返回的第一个字节和最后一个字节之间的时间计算。执行时间直接影响吞吐量的计算。

2.响应时间

从发出请求到服务器向客户端返回第一个字节之间的时间长度。对于客户端用户,这通常是性能中最直观的一个方面。如果应用程序响应时间很长,用户可能会觉得不耐烦,并转到另一个站点。应用程序的响应时间的改变与吞吐量的速率无关(甚至成反比)。

3.可缩放性

用于衡量应用程序在获取更多资源(内存、处理器或计算机)时更好地执行的能力。它经常按吞吐量相对于处理器数的更改速率计算。

4.吞吐量

web应用程序在单位时间之内可以处理的请求数,经常以每秒请求数衡量。吞吐量可以根据应用于服务器的加载(客户端线程数)而不同,这通常被视为要优化的最重要的性能度量。为

了编写正常且高效执行的应用程序,务必要保持这些度量的合理取值范围。

三、改进ASP.ENT应用程序的性能

ASP.NET 2.0模型提供了许多内置的性能增强功能,尤其是在HTTP请求的处理方面的两项功能:第一,当首次请求ASP.NET页面时,将动态编译Page类的实例。公共语言运行时(CLR)会将ASP.NET托管页代码实时编译为处理服务器的本机代码。第二,当为第一个请求编译Page类实例后,就将其缓存到服务器上。对于随后对该页的每个请求,将执行该类缓存的实例。除非该页的初始源或它的一个依赖项发生更改,否则对Page类的编译只发生在最初请求之后,这极大地提高了ASP.NET页面的访问速度。但要保证用户所编写的应用程序能够同时处理多个HTTP请求,从而改善ASP.NET应用程序的性能,还需从以下几个方面着手来确保所编写的代码能够达到较高的性能级别。

1.及时处理数据访问对象

在给予ASP.NET 2.0的应用程序中,如果没有正确处理数据访问对象,就会大量消耗的服务器内存。当建立一个数据访问对象时,充分理解这些控件的生命周期,并且能在不需要时即使进行处理是非常必要的,这样能确保数据访问对象适当地被管理,避免服务器在内存占用过多的情况下才进行内存释放。

2.合理应用IIS应用程序池

在典型的应用中,当处理一个Web应用程序时,这个Web程序由多个部分组成。通常有主Web站点,一个或多个Web服务,或是一个图像处理程序。应用程序池允许使应用程序在各自的单独进程中运行,将我们的应用程序的不同组成部分分开,使它们分别运行在自己的内存空间中。由于每个处理进程的内存达到800-900M时系统就会变得很慢,因此,需要应用程序分散到不同的处理进程中,这样每个工作进程占有的内存就不会那么大了,这样会从某种程度上提高系统运行的效率。

3.正确管理ASP.NET状态

为了更进一步地改善应用程序性能,对ASP.NET的不同的状态类型有一个深入的了解是非常必要的。ASP.Net有许多不同的状态,分别是应用程序状态、会话状态和profile属性,这些状态都保存在服务器的内存上。所以应尽量避免保存太多这三种状态的数据,除非有必要保存它们。例如,如果需要在会话状态保存数据,就只存需要的数据,如标识字段或静态数据频繁被使用。因此,它们可以保存在会话状态中。

4.清除不需要的CSS和脚本文件

一个快速和容易的改善应用程序性能的方法就是清楚程序中的不需要的CSS和脚本文件。在开发程序时,在不断完善系统的过程中,可能会遗留很多没用的脚本文件或脚本程序。需要网站使用了一个单独的CSS或脚本文件来满足整个网站的需要。这样做将会产生大量的数据和代码冗余。如果在网站的代码中继续引用不再使用的CSS或脚本文件,那么在每次加载网页时它们都会进行被传输,这样将是对网络资源的一种浪费。可以通过运行一个Web页分析器来准确地知道哪个页被转载,哪个页装载的时间最长。

5.对系统进行测试

装载测试从本质上说是发现系统的性能问题,并测量系统在单位时间内的响应次数。Visual Studio Team系统(VSTS)包括了一个强大的简单的工具,用来对Web程序进行装载测试,并提供更有价值的报告。使用测试模板可以非常简单地按着系统所提示的步骤建立一个测试工程。可建立一个或多个Web测试,并为每一个Web测试配置相应的属性来模拟不同的用户。Web测试通过模拟的用户进行测试,这将作为装载测试的一部分。还可以使用性能监视器在服务器上安装性能计数器。使用性能计数器监测Web服务器上发生的一些特殊活动数据,如私有字节、虚拟字节以及CPU使用率等。如果在应用程序中有内存漏洞,那么很容易通过监视内存来发现这些漏洞。所得到的结果将以来于应用程序装载什么而有细微的差别,但是Web服务器的内存应该达到一个一致的水平,并保持稳定。

四、总结

上面所提到的几个个用于改善Web性能的方法非常快捷,并不需要更多的开发经验和工作技巧。本文提到的提高ASP.Net性能的策略只是一个起步,只有通过自己的实践,才能找到对每一个不同项目最有帮助的技巧。然而,在任何一个开发旅程中,这些策略可以起一些必要的指导作用。

参考文献:

[1]李应伟等.ASP.NET数据库高级教程.清华大学出版社,2004,7.

[2]Chris Knowles.ASP.NET XML高级缟程.清华大学出版社,2002,12.

[3]三味工作室.SQL Server 2000.人民邮电出版社,2000,11.

[4]曾诚.高性能ASP.NET应用程序的探讨与研究.湖北大学学报(自然科学版),2004,26(1):19-22.

[5]于瑞国等.ASP.NET新特性的初步研究[J].电子计算机,2002,(2):11-14.

(作者单位:广东海洋大学)

猜你喜欢
控件页面应用程序
使用“填表单”微信小程序 统计信息很方便
答案
基于.net的用户定义验证控件的应用分析
让Word同时拥有横向页和纵向页
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
三星电子将开设应用程序下载商店
驱动器页面文件大小的总数为何总是07
微软软件商店开始接受应用程序
利用VF6.0的Timer控件实现动画效果