基于ASP.NET应用系统性能研究与探讨

来源 :硅谷 | 被引量 : 0次 | 上传用户:a6532460
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]主要介绍基于ASP.NET应用系统性能优化方面问题的解决方案。用于提高web应用程序的应用效果。
  [关键词]ASP.NET应用系统 性能优化
  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0120077-01
  
  一个系统的性能是否良好,已经成为系统是否成功的标志之一。下面对基于ASP.NET应用系统性能从四个方面进行探讨。
  
  一、编码级别
  
  编码级别的优化主要注意的问题包括以下几个方面:
  1.数据连接。操作数据库最常用的操作就是创建数据库连接,这一系列操作非常耗费资源。在操作过程中应注意:数据库连接尽量晚打开早关闭;尽量使用优化过的SQL语句以减少执行时间,比如,不在查询语句中包含子查询语句、充分利用索引等。
  2.数据查询。在数据操作中,数据查询是非常普通的操作。提高数据查询操作的性能将对提高应用程序性能有很大的帮助。在数据查询中应注意的事项如下:
  (1)Select记录的时候,只返回需要的字段,不要把所有字段都返回。(2)一般情况下,读取大量数据,对返回数据不做大量处理用SqlDataReader,对返回数据大量处理用dataset比较合适。(3)执行多条SQL语句进行查询时,尽量使用存储过程来实现,避免多次向服务器传送数据。(4)后台数据库采用SQL Server服务器时,多使用带有参数的SQL命令,SQL Server只对命令编译一次,对于不同的参数重复使用,节省了服务器应用效能。
  3.字符串操作。字符串操作是应用程序中经常使用的功能,如果能够提高字符串操作的性能,就可以实现提高Web应用程序的性能。
  (1)进行字符串连接时,要直接使用“+”将数字添加到字符串中。(2)大量拼接字符串最好使用StringBuilder来完成操作,耗时会更短。(3)使用值类型的ToString方法可以避免装箱拆箱操作,避免系统消耗,极大提高性能。(4)如果需要把字符串向客户端输出,选择直接输出会比拼接后再输出效果好。
  4.释放资源。对于实现了Dispose模式的类型都可以使用using来确保它能被释放。对于数据库连接、文件连接和网络连接等非常重要的资源,我们都可以使用using来确保资源能释放。
  5.异常处理。应通过预先判断来避免异常的发生,而不是明知道异常可能会发生利用捕获异常来屏蔽可能的错误。
  6.使用泛型集合来代替普通集合能够避免装箱拆箱操作,提高性能。
  
  二、页面级别
  
  对于Web系统来说,页面是很重要的一个部分,客户端和服务器端就是通过静态的HTML、JS等代码进行交互的。
  1.对于需要经常更新的数据,可以使用页面缓存在一段时间内缓存页面。
  2.在使用服务器控件时要避免使用服务器控件视图状态来提高性能。虽然视图状态能够自动在页面往返过程中维护服务器控件的状态,减少开发者的工作量,但却使性能降低。因此,在不需要维护控件状态的情况下,应该将服务器控件的EnableViewState属性设置为false。
  3.应用中,我们可以使用DataList控件或Repeater控件来替代DataGrid控件来创建类似Excel的列表,可以减少性能上的开销。
  4.尽可能把几个图片合成一个图片来减少向Web服务器请求的次数。
  5.不要把整个页面放到一个大表格中,使用表格来定义整个页面。如果这样做的话,那么页面只有等到整个页面全部加载完毕后才会呈现。
  6.尽量把CSS分离到单独的文件中,而不要在每个页面的顶部都生成一段CSS代码,CSS文件能被客户端缓存,使用独立的CSS文件能够减少页面的数据量。
  7.可以通过Page.IsPostBack判断是否首次加载页面来避免重复执行一些不必要的代码。
  
  三、架构级别
  
  系统架构对整个系统性能的影响较大,对分布式系统的性能影响尤其大。
  1.数据缓存。ASP.NET提供了一些简单的机制,它们会在不需要为每个页请求动态计算页输出或数据时缓存这些页输出或数据。另外,通过设计要进行缓存的页和数据请求(特别是在站点中预期将有较大通讯量的区域),可以优化这些页的性能。
  (1)不要缓存太多项。缓存每个项均有开销,特别是在内存使用方面。(2)不要缓存容易重新计算和很少使用的项。(3)给缓存的项分配的有效期不要太短。很快到期的项会导致缓存中不必要的周转,并且经常导致更多的代码清除和垃圾回收工作。
  2.分布式程序。对于分布式程序来说,各个组件之间的通信决定了整个系统的性能。因此需要通过改善通信方式来尽量减少在网络上传递的数据的量。(1)跨网段式使用Web服务通信。(2)同一个子网内使用REMOTING TCP通道进行通信。(3)同一个机器内使用REMOTING IPC通道进行通信。
  3.分布静态资源。对于大型系统,我们可以单独把系统内的所有静态资源分布到独立的服务器上,然后把对这些资源的URL连接通过直接指向这个服务器。
  
  四、配置与部署
  
  IIS(Internet信息服务)的设置决定了整个系统的性能好坏。
  1.在部署生产应用程序或进行任何性能测量之前,一定记住禁用调试模式。如果启用了调试模式,应用程序的性能可能受到非常大的影响。所以发布前要把Web.config中compilation节点的debug设置为false来禁用调试。
  2.必要时调整应用程序每个辅助进程的线程数。进程中有太多线程往往会降低服务器的速度,因为额外的上下文交换导致操作系统将CPU周期花在维护线程而不是处理请求上。
  3.不要将日志文件与Web页存储在同一个硬盘上。这将阻止硬盘日志记录线程干预检索Web页的线程。
  4.在IIS中配置HTTP压缩可以减少页面加载时间。
  
  五、结束语
  
  ASP.NET作为全新一代的动态网页生成系统,它在平台性能方面与原有的ASP相比已有了一个本质的提高。但要在此基础上开发出专业水准的、符合生产标准的、受用户欢迎的web应用程序,还需要开发人员在编码、页面、架构和配置部署等各方面进行优化处理,以提高应用系统的总体性能。
  
  参考文献:
  [1]冯方方,ASP.NET基础教程[M].北京:清华大学出版社,2005.
  [2]赛奎春、王国辉,ASP工程应用与项目实践[M].北京:机械工业出版社,2005.
  [3]Dino Esposito,ASP.NET 2.0技术内幕[M].北京:清华大学出版社,2006.
  作者简介:
  周建鲲,男,山东省青岛市,中国海洋大学信息科学与工程学院研究生,研究方向:ASP.NET应用系统开发。
其他文献
[摘要]远程协助为我们提供一种获取帮助的有效手段,在遇到问题时我们可以通过远程协助从外部获取所需帮助。计算机技术精通的人可以通过远程协助替别人解决问题。  [关键词]远程协助 远程桌面  中图分类号:TP3 文献标识码:A文章编号:1671-7597(2009)0120061-01    一、Windows远程协助的应用    “远程协助“是Windows附带提供的一种简单的远程控制的方法。早期版
期刊
[摘要]随着GIS的发展和广泛应用,利用软件编制地图已成为地图编制的一种重要手段,其社会、经济效益十分显著,应用前景广阔。介绍利用MapGIS软件进行数据处理的相关事项,其与Auto CAD软件、Microsoft Word软件以及Microsoft Office软件的应用,并且根据实际操作总结一些解决问题的方法,同时针对坐标转换等问题提出操作的技巧,以提高成图速度和美观效果。  [关键词]Map
期刊
[摘要]针对目前互联网在高校的发展普及,提出高校二级网站的建设方案。此方案充分利用ASP.NET2.0技术,使高校的二级网站建设变的快速,高效,并且安全。  [关键词]网站建设 ASP.NET 主题 Menu 用户控件 ObjectDataSource 三层结构  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0120063-01    随着互联网的普及,越来越多的高校都
期刊
[摘要]详细阐述在LINUX下安装JDK及环境变量具体配置过程。  [关键词]Java 环境变量  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0120041-01    一、JDK的安装及环境变量设置    1.去http://java.sun.com/j2se/1.6.0/download.html下载一个Linux Platform的JDK,建议下载RPM自解压格
期刊
[摘要]介绍基于AT89C51单片机的温度测量系统硬件电路设计方法、工作原理以及程序设计。利用PT1O0阻值随温度变化的特点,将其和其他三个电阻构成非平衡电桥,因而温度的变化可转化成电桥输出微弱电压信号的变化,电压信号经集成运放电路放大后送到A/D转换器,将模拟信号变换成数字信号,单片机根据输入量和设定量进行运算,将结果送到数码管显示,完成对温度的测量。该系统可实现对温度实时较精确的测量,测量范围
期刊
[摘要]通过统一建模语言(UML),提出了基于UML的构件抽取的方法,在此基础上,运用UML的构件抽取方法对教务管理系统进行了构件抽取,为在开发基于构件的教务管理系统中进行构件的抽取提供一种可行的解决方案。  [关键词]统一建模语言 构件 教务管理  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0120062-01    一、统一建模语言及构件发展概况    软件构件技
期刊
[摘要]地理信息系统(GIS,Geographic Information System)是一种基于计算机的工具,它可以对在地球上存在的东西和发生的事件进行成图和分析。GIS技术把地图这种独特的视觉化效果和地理分析功能与一般的数据库操作(例如查询和统计分析等)集成在一起。这种能力使GIS与其他信息系统相区别,从而使其在城市智能交通管理中起到相对应的实用价值。  [关键词]城市交通管理 系统构架 共
期刊
[摘要]随着电子商务技术的发展,网络交易安全成为电子商务发展的核心和关键问题。基于Web Service的电子商务安全的问题已经成为电子商务顺利发展的重要市场环境条件。在分析基于Web Service的电子商务的主要安全要素的基础上,具体介绍采用目前电子商务领域的几种安全技术来消除电子商务活动中的安全隐患。  [关键词]Web Service 电子商务 安全技术  中图分类号:TP3文献标识码:A
期刊
[摘要]简要分析和介绍计算机网络入侵检测系统的主要类型及其技术,给出一个网络入侵检测系统的技术实现机理。  [关键词]计算机 网络 安全 入侵检测  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0120073-01    随着计算机网络规模的爆炸式增长和网络应用的日益深化,安全问题愈发突出,传统的单一安全技术如防火墙、授权与身份认证系统、信息加密等,都是以静态的方式保障
期刊
[摘要]在学习C语言过程中,指针、地址和数组是最富有特色的内容,特别是指针、地址和数组之间相互关系更具有特色。掌握它们之间的相互关系将有助于C语言其他内容的学习,因此学好这部分内容是掌握C语言的关键。主要用图示法阐述指针和地址、指针和数组之间的联系。  [关键词]C语言 指针 地址 数组 图示法  中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0120049-01    
期刊