asp.net的性能优化

asp.net|性能|优化

性能对于一个应用程序来说是一个很重要的问题,在web的开发中也是一样,相信没有人愿意在电脑屏幕前花8秒钟来等待一个也面的打开,这就是常说的在web上的8秒钟原则。对于一个应用程序的性能我们应该把它当作是应用程序的一项功能,在设计的时候就应该处理好性能的问题,而不应该在整个程序开发完了以后再来进行优化,因为这样会付出更多的代价。
下面来讨论一下在asp.net中的性能问题。
    asp.net相对于以前的版本asp通过引擎的改变,从而提高了性能。Asp是一种脚本解释引擎,有很多的代码是运行时接受用户请求后编译的,这样在很多的用户都发生同一请求时会造成服务器端的压力很重,而asp.net是采用一次编译的策略,只有当某一个页面第一次被请求时服务器才通过整个的编译过程,这样就大大提高了运行效率。但只是靠引擎的优化并不能完全解决asp.net的性能问题,代码的优化是另一个很重要的方面。
    用Asp.net创建web应用程序时应该使用三层结构模型,三层就够是近几年来比较流行的一种模型。三层结构的三层分别为表示层(用户可以看到的页面)、业务层(实现应用程序的业务功能,一般称为组件,由.vb或.cs等文件编译而成的.dll控件)、数据层(主要涉及到用ado.net访问数据库)。三层结构可以使程序具有更好的可扩展性、灵活性、安全性、平台无关性以及可维护性。
Asp.net可以使用C#或vb.net这些面向对象的高级语言来编写逻辑代码,我们使用这些语言定义变量时要求显式地定义所有变量的类型,避免使用object类型的晚绑定方法,应该早绑定,早绑定有利于代码的执行有利于提高性能。我们可以在page指令中加上Explicit=”true”,如:<%@ Page Language=”VB” Explicit=”true”%>这样我们每次在声明变量时都应该指定类型。还可以在Page指令中加上Strict属性如:<%@ Page Language=”VB” Strict=”true” %>来避免晚绑定。
    ViewState是asp.net的新功能。使用ViewState可以很容易地在往返服务器的过程中保持控件状态。但使用ViewState会使文件的大小明显增大而且还会影响性能。所以建议如果不是万不得已就应该关闭ViewState如:<%@ Page EnableViewState=”false” %> 或者是单独停掉某一个控件的ViewState。除此之外,对于Session我们还应该选择合适的方式存放,有三种方式:Inproc(在进程中存放)、StateServer(放在状态服务器)、database(在数据库中存放)。在Inproc中性能最好,但扩展性相对来说较差,其它的两种方式性能没Inproc好,但具有良好的扩展性,所以我们应该根据具体的情况来作选择。如果不需要使用Sesion也应该禁用如:<%@ Page EnableSession=”false” %> 这样有助于也面的请求。如果只是读取Session不做修改可以这样做:<%@ Page EnableSession=”ReadOnly” %> 也可以提高性能。
    还有一个很重要的提高性能的方法就是使用缓存技术,asp.net中有三种缓存机制页面缓存、片段缓存和数据缓存。页面缓存是将频繁访问的页面放入缓存,当用户再次请求该页面时就不需要重新生成页面而是直接将缓存中的页面发送到客户端,节省了响应时间,极大提高了性能。具体做法是在页面代码中加上OutputCache指令,如:<%@ OutputCache Duration=”60” VaryByParam=”none” %> 在上面的代码中Duration是指缓存的时间,根据程序的实际情况自行设定,VaryByparam是指缓存的内容根据一个参数来发生变化。比方说已个页面上有一个查询天气的功能,当一个用户输入北京查询了后,页面被缓存了,另一个用户马上查询上海的天气,为了产生输出的结果还是被缓存的北京这样的错误,VaryByparam就起到作用了,<%@ OutputCache Duration=”60” VaryByParam=”TextBox1” %> 其中TextBox1是指输入地址的文本框的ID号。片段页面缓存主要是用于缓存用户控件中的内容,在用户控件的页面代码中添加OutputCache指令,然后在页面中加入用户控件就可以了。有些时候,用户会请求大量相同的数据,如果频繁地读取这些数据就会浪费很多的时间,这时就可以应用数据缓存技术来提高性能。可以通过编程的方式来缓存任何对象。在asp.net中是通过Cachel类来实现的。如:Cache[“myName”]=myName;  myName=Cache[“myName”];。
    做web开发离不开数据库,在操作数据库的时候应尽量使用存储过程,这样可以消除数据库的往返访问。在使用DataSet和DataReader时也要注意,如果从数据库中查询出的数据只是在前端显示而不需要修改就应该使用DataReader,因为DataReader的性能比DataSet好。

时间: 2024-08-09 05:12:46

asp.net的性能优化的相关文章

ASP.NET程序性能优化五则

asp.net|程序|性能|优化 一.使用存储过程: 1.性能方面:存储过程提供了许多标准sql语言中所没有的高级特性.其传递参数和执行逻辑表达式的功能,有助于应用程序设计者处理复杂任务.另外,存储过程存储在本地服务器上,减少了执行该过程所需的网络传输宽带和执行时间.(存储过程已经对sql语句进行了预编译,所以其执行速度比在程序里执行sql语句快很多) 2.程序结构方面:从程序的可扩展性看,使用存储过程会对程序以后的修改带来方便.比如数据库的结构改变了,只需修改相对应的存储结构,和程序中的调用部

ASP程序的性能优化

程序|性能|优化 第一章 使用服务器缓存 1.使用application和session保存数据的技巧. 可以再程序启动或会话开始时将需要的数据赋值给application和session对象.使用这种方法只需要在global.asa文件的application_Onstart和session_OnStart函数中添加响应的赋值函数或语句即可. 再合适的条件下可以缓存ADO记录本身,但是需要注意: 1.ADO记录必须时自由线程标记的 2.必须时已经断开的记录集 3..在服务器硬盘上缓存数据 对于

个人ASP.NET程序性能优化心得(1):数据库篇

前言 相信园子里有不少程序员同学都是在做着xx管理系统这样的中小型项目,这种项目往往是一种工作量的代码,程序员同学就将青年耗费在这样的项目中,不断改变需求,不断地加班赶工,于是就开始怀疑这个行业,对developer充满厌恶,想学新东西,可是周围同事的水平都是差不多:想买书学平时加班根本没有自己的时间.这种状况相信大多数情况都在我们身边发生,我之前就是处于这种状态,使用的是asp.net语言,不过很难界定所做的项目是网站还是软件,因为它很复杂,开发周期和传统软件开发没有什么区别,但它确实是部署在

Asp.net 网站性能优化二则分享_实用技巧

随着后端优化空间越来越小,现在越来越多的网站更注重前端性能的优化,就是浏览器,http层面的优化,这里写两点最简单最有效的 asp.net网站优化技巧. 了解常见的网站性能优化技巧 首先我们要学一些优化网站性能和体验的理论和基础知识,雅虎已经帮我们总结好了,详见参考链接中的几篇文章,有好心人已经给翻译成中文了.这里面提到的一些技巧可操作性都很强,建议每一个网站开发人员都仔细学习并进行实践,可以说不了解这里面说的优化技巧,提升网站前端性能就无从谈起. 诊断网站性能 要想优化网站的前端性能,首先要查

一起谈.NET技术,如何对ASP.NET进行性能优化

一.SqlDataRead和Dataset的选择 Sqldataread优点:读取数据非常快.如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多.缺点:直到数据读完才可close掉于数据库的连接. (SqlDataReader 读数据是快速向前的.SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法.它使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据.DataReader

记一次ASP.NET MVC性能优化(实际项目中)

前言 在开发中为了紧赶项目进度而未去关注性能的问题,在项目逐渐稳定下来后发现性能令人感到有点忧伤,于是开始去关注这方面,本篇为记录在开发中遇到的问题并解决,不喜勿喷.注意:以下问题都是在移动端上出现,无法确定在网站中是否也同样会出现. 卡顿问题 请求方式 项目属于移动端,在手机上查看某一列表时并进行向下滑动时经常性卡顿问题,滚动的插件采用的是iscroll,当然怀疑是不是这个插件问题,但是很快就排除了这个问题,在其他页面未出现这个问题,后来接着想因为在脚本中进行Ajax请求超时时间设置为30秒,

如何对ASP.NET进行性能优化

一.SqlDataRead和Dataset的选择 Sqldataread优点:读取数据非常快.如果对返回的数据不需做大量处理的情况下,建议使用SqlDataReader,其性能要比datset好很多.缺点:直到数据读完才可close掉于数据库的连接 (SqlDataReader 读数据是快速向前的.SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法.它使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据.DataReader需

Asp.Net 程序性能优化的几个方面(转载)

在我们开发Asp.Net过程中,需要注意的一些细节,以达到我们优化程序执行效率. 1.使用值类型的ToString方法  在连接字符串时,经常使用"+"号直接将数字添加到字符串中.这种方法虽然简单,也可以得到正确结果,但是由于涉及到不同的数据类型,数字需要通过装箱操作转化为引用类型才可以添加到字符串中.但是装箱操作对性能影响较大,因为在进行这类处理时,将在托管堆中分配一个新的对象,原有的值复制到新创建的对象中.  使用值类型的ToString方法可以避免装箱操作,从而提高应用程序性能.

asp.net 程序性能优化的七个方面 (c#(或vb.net)程序改进)_实用技巧

1.使用值类型的ToString方法 在连接字符串时,经常使用"+"号直接将数字添加到字符串中.这种方法虽然简单,也可以得到正确结果,但是由于涉及到不同的数据类型,数字需要通过装箱操作转化为引用类型才可以添加到字符串中.但是装箱操作对性能影响较大,因为在进行这类处理时,将在托管堆中分配一个新的对象,原有的值复制到新创建的对象中. 使用值类型的ToString方法可以避免装箱操作,从而提高应用程序性能. int num=1; string str="go"+num.T