计算机网络论文高性能ASP.NET应用程序优化方法研究
所属栏目:计算机网络论文
发布时间:2014-03-26 14:05:54 更新时间:2014-03-26 14:47:53
本文通过参考查阅大量的文献,详尽分析了ASP.NET网站存在性能问题的若干原因,从程序编码优化、数据库操作优化、配置优化等若干方面开展了深入研究,并进行了分析和总结。
摘要:基于ASP.NET平台的网站和应用越来越广泛,用户对网站的访问速度要求也越来越高。分别从程序编码优化、数据操作优化和配置优化等三个方面入手,介绍在实际应用开发中网站性能优化的若干方法和技巧,主要针对响应时间、吞吐量和资源利用率等性能指标优化网站,以提高访问速度和网站性能。
关键词:ASP.NET,性能优化,编码优化,数据库优化,配置优化
0引言
对于高访问量的网站来说,网站性能非常重要。网站性能优化是指在不影响系统运行正确性的前提下,使其能够运行得更快,完成指定功能所需的时间更短。对网站访问者来说,用相对较短的时间打开网站页面不仅可以优化用户网络使用时间的分配比例,且网络的使用也更加舒心高效;对于网站经营者来说,网站性能优化则可以提高系统响应速度和用户满意度,并有效平衡系统负载,从而提高点击率和网站竞争力[1]。所以,通过对网站优化来实现网络性能提高成为解决目前网站访问过程中存在的各类问题的合理途径[2]。
1影响ASP.NET性能的几个方面
1.1视图状态
视图状态利用ViewState属性作为内置结构,对同一个页面的多个请求自动保存值,视图状态则存储在页上的一个或多个隐藏域中。虽然视图状态以哈希格式存储数据,但如果直接查看页输出源,仍然可以看到隐藏域中的信息,这将会导致潜在的安全性问题。视图状态是性能的无形杀手,是以牺牲一定的网站性能为代价,使得页面和控件能够在回传之间保持状态,不必重新进行数据绑定。所以通常只是在必要时保存服务器控件的视图状态,这在一定程度上可以提高网站的执行性能[3]。
1.2ASP.NET会话状态
会话状态就是在构造Web应用程序的不同ASP.NET页面间的导航时,可为用户存储和检索值。对于在Web领域中运行的应用程序来说,这是一项重要功能,因其允许该领域中的每个服务器共享一个会话状态公共库。但是,在默认情况下,所有ASP.NET应用程序都启用了会话状态,也就是说,在每个(甚至与会话状态无关的页面)请求中都要付出通信代价,这将直接对整个网站的吞吐量形成严重的负面影响。因此,应该禁用那些不实用会话状态的页中的会话状态。此时,可通过修改配置文件控制会话状态,确保ASP.NET只在真正需要时才访问会话状态数据库,而消除不必要的会话状态即是构建高性能应用程序的第一步,可使性能获得显著提高[4]。
2优化策略和技术
2.1程序编码优化
程序编码优化中包括集合优化和类型转换优化。
2.1.1集合操作
.NETFramework提供了相当多的集合类,在对应的集合操作时,首先要熟知不同集合的特性,按照操作需求选择合适的集合。在所有集合中,数组的性能是最高的,因此,当需要存储的数据容量固定不变且数据类型一致,尤其是没有值类型和object类型相互转换的数据操作时,数组的操作效率是极高的[5]。
需要指出的是,在选择集合类型时应该注意以下两点:
(1)若需要存储的数据类型相同,则可以优先考虑数组类型,因为数组类型可以避免值类型和object类型的相互转换操作,从而提高效率。
(2)在对即将存储大量数据的集合进行操作时,最好情况是赋予其一个较大的初始值,以免因增加额外扩充集合而带来的系统性能损失[6]。使用相同数据测试数组、ArrayList以及List集合操作结果如图1所示。
2.1.2类型转换优化
在系统开发过程中,类型转化是不可避免的问题。常见的类型转换有两种,其一是数值类型和引用类型的相互转换,另一种则是类之间的类型转换。若转换过程中出现了不能转换的情况,系统就会抛出异常,这就会给系统性能带来不良的影响。此外,在程序编码过程中还要尽量减少值类型和引用类型之间的转换(即装箱和拆箱)。而无论是装箱还是拆箱都需要进行大量的计算,这在无形之中,则必然不利于系统优化。
2.2数据库操作优化
2.2.1合理使用数据库连接对象
在连接到数据库时通常需要很多个步骤来实现,如果应用程序使用了几个不同的数据库连接,就将意味着,程序在执行期间,会反复不断地打开和关闭数据库。这也将大大降低系统的总体性能。使用数据库连接,需要遵循一个原则:尽可能迟些打开数据库,尽可能早些关闭数据库连接。除了遵循数据库的使用原则以外,还可以通过使用数据库连接池来提高数据库操作的性能。特别地,若能将数据库单独另存在一台机器上不仅可以减轻原来服务器的负担,数据库的安全也由此能得到更为切实的保障[7]。
2.2.2数据访问优化
在数据库访问过程中,经常使用DataReader对象也会提升一定的性能。DataReader对象不仅提供了一个有效的数据查看模式,其本身还是一种非常节省资源的数据对象。此外,在数据访问时使用存储过程也是个不错的选择。存储过程可在相当程度上增强SQL语言的功能性和灵活性。而且存储过程还可以有效避免对命令的多次编译,一次执行后就驻留在高速缓存中,以待其后从缓存中直接调用,这些均将使系统性能获得高度提升。
2.2.3合理使用缓存
缓存是指临时文件交换区,是可以进行高速数据交换的存储器。缓存的使用可以大大提高系统的效率。合理设置缓存,应用系统就会根据每个用户的请求从高速缓存中读取已有数据,由此明显提高应用程序的性能。但却不要频繁变化缓存,而且尽量避免将使用并不频繁的数据放入缓存,更不要将数据缓存的时间设置过短。
2.3配置优化
2.3.1合理使用ViewState
在ASP.NET中为了实现服务器控件在HTTP请求之间维护其状态而启用了服务器控件的视图状态。服务器控件视图状态为其所有属性的累计值,这些值在后面的请求处理中将作为变量传递给隐藏的字段,一般情况下这些值是经过了一定的编码或者加密处理之后再保存到隐藏字段中的,在后面的请求中是需要反向处理才能得到原始的值,而这些处理都是需要时间花费的。有时候为了提高应用程序的性能,在不需维护服务器控件的情况下就可以禁用视图状态(默认情况下是启用视图状态的),特别是在使用数据绑定控件时,则务需关注该问题。
2.3.2合理选择会话状态存储方式
3结束语
通过合理地编程优化、数据库操作优化和配置优化,可以使得ASP.NET应用程序的性能得到显著提升,网站的负载平衡性能也得到明显改善,因而大大提高了系统性能。另外,也可从异常处理、垃圾回收机制、缓存页数据等方面进行优化,均可进一步提高系统的吞吐量。
参考文献:
[1]白哲,孙可.网站的技术优化策略研究[J].沈阳师范大学(自然科学版),2010,7(15):395-397.
[2]杨舟.浅析大型网站的性能优化[J].软件工程师,2010,12(15):38-40.
[3]徐征,程宴.浅谈网站系统的高效优化[J].计算机与数字工程,2008,36(10):206-209.
[4]汤海凤,张春燕,葛明明.基于缓存技术的ASP网站性能优化策略研究[J].信息技术,2011,8(25):222-224.
[5]赵春燕.网站优化深度研究[J].信息安全与技术,2012,6(5):61-64.
[6]桂友武,桂友超.基于ASP.NET企业网站的性能优化探讨[J].企业技术开发,2009,4(1):122-123.
月期刊平台服务过的文章录用时间为1-3个月,依据20年经验,经月期刊专家预审通过后的文章,投稿通过率100%以上!