实现ASP.NET程序性能目标的几种方法

asp.net|程序|性能

 第一次在这里写BLOG,希望不要被大家取笑!

  一. 调整程序代码

  1.避免多次读取相同数据

  在循环语句中不要包含无端重复执行的代码,如:

  while ( dr.read())
  {
  if(dr.item["lastname"]==Request.params[“lastname“])
  return true;
  else
  return false;
  }

  在上面循环中,对于DataReader返回的每条记录都要对Request.params[“lastname“]进行一次求值,假如dr返回100条记录,我们就对Request.params[“lastname“]求值了100次 ,而这100次有99次都是多余的,下面的代码相对效率就高些

  string strlastname=Request.params[“lastname“];
  while ( dr.read())
  {
  if(dr.item["lastname"]==strlastname)
  return true;
  else
  return false;
  }

  总结:从任何类型的集合中读取值都比较慢,我们需要多次访问它时,可以先在局部变量中保存一个副本
  
  2.对连接字符串使用Response.Write();

  连接字符串是一个很费资源的操作,我们要把一个10字节的字符与一个30字节的字符连接起来,代码必须分配一个40字节的内存区域,复制所有字节到这块区域,然后在调整指针位置指到这块区域,在释放原来资源而Response.Write()方法提供了高效的缓冲和连接服务,所以一般情况下以下代码

  Response.Write(“HeadLine=“);
  Response.Write(“strHeadLine“);
  Response.Write(“,Descreption=“);
  Response.Write(dr.item[“Descreption“]);

  比下列代码

  Response.Write(“HeadLine=“)&_
  StrHeadLine&_
  “,Descreption=“&_
  dr.item[“Descreption“];

  效率要高

  总结:尽量用Response.Write()和StringBuilder来连接字符串

  3.避免频繁调用COM组件转为托管代码.

  4.避免改变数组维数

  在程序中动态改变数组维数其实是用请求大小创建一个新的数组,拷贝原来数组中内容到里面,然后删除原来数组,并用新数组代替旧数组地址,这就耗费了很大力气

  5.不要过分依赖于代码中的异常检查

  异常处理是很消耗资源的操作,对于普通代码能检测到情况,就应尽少使用异常处理

  如

try
  {
  int a,b;
  a=100/b;
  }
  catch
  {
  b=0;
  }

  就不如用以下代码效率高

  if(b==0)
  {
  error();
  }

  效率高

  总结:应尽少量的使用异常处理机制

  6。应该实现尽早绑定防止后期绑定,做法为在WEB页的@Page指令中加入O ption=“Strict”这一选项可以防止在数据转换时都是数据

  二。调整ASP.NET的使用

  1.禁用调试和跟踪模式

  在部署产品级应用程序时,用这两个模式会显著降低性能

  2.预先在Application 对象中载入数据

  把一些频繁使用的又相对静止的数据通过一次性读取数据载入Application 中可以提高程序的性能 Application对象一旦建立九一直保存在内存中,直至程序结束,对于WEBl来说就是服务器关闭,但把几Mbyte的数据存在Application中不是什么好的选择了

  3.用Page.IsPostBack来避免不必要的处理

  在实际表单提交时没有必要运行初始化代码,ViewState机制会保存我们任何表单的初始化元素

  4. 适当使用服务器控件

  在控件标记中加runat=server会增加web服务器的负担.除非有必要处理控件的属性,在服务器处理控件的事件时候就不要为标记加此属性

  5.在必要的时候使用ViewState

  viewstate包含的控件越多,服务器负担就愈大,利用viewstate还可能惹出麻烦,例如一个显示错误信息的label控件,我们希望不要在每一个页面上都重复该消息要清除某一控件的VIewstate 属性可以将其EnableViewSate属性设置为false.

  6.在没有使用会话的页面中禁止用Session

  7.尽可能的缓存数据和页面输出

  Cache可以大幅度提高性能,我们可以在页面中编写OutputCache指令

  8.避免对服务器进行不必的数据往返传输

  可以利用验证控件来减少不必要的往返数据传输,后面的比较仓促,老婆催着睡觉,再不睡估计要.....,呵呵.

时间: 2024-10-03 18:29:33

实现ASP.NET程序性能目标的几种方法的相关文章

实现性能目标的几种方法

性能 第一次在这里写BLOG,希望不要被大家取笑!一. 调整程序代码1.避免多次读取相同数据 在循环语句中不要包含无端重复执行的代码,如:while ( dr.read()){ if(dr.item["lastname"]==Request.params["lastname"]) return true; elsereturn false;}在上面循环中,对于DataReader返回的每条记录都要对Request.params["lastname"

ASP.NET程序性能优化五则

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

asp.net跳转页面的3种方法

目前进行.net学习的很多学员对于asp.net跳转页面的几种方法不是很清楚,了解asp.net跳转页面的三种方法,对于以后的编程会有很大帮助,下面我们就来看一下: 1. response.redirect 这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳 转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护.但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个 http请求到客户端,通知需要跳转到新页面,然后客户端在发送

ASP.NET连接 Access数据库的几种方法_实用技巧

web.config 第一种方法: <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细消息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <appSettings> <add key="AccessConnString"

asp.net读取excel文件的三种方法示例

 这篇文章主要介绍了asp.net读取excel文件的三种方法示例,包括采用OleDB读取Excel文件.引用的com组件读取Excel文件.用文件流读取,需要的朋友可以参考下 方法一:采用OleDB读取Excel文件   把Excel文件当做一个数据源来进行数据的读取操作,实例如下:  代码如下: public DataSet ExcelToDS(string Path)    {    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;&q

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

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

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

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

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

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

加速ASP程序的运行速度的两种方法

程序|速度 1.使用表格嵌套?  在页面中建立复杂的结构,一般通过在页面中放置HTML表格来实现.如果要建立一个这样的页面:这个页面有一个顶部导航栏一个左边导航栏,一个右边的内容区.可以用一个两行两列的大表格来建立它.第一行中,合并两个列,然后插入一个顶部导航栏.第二行左边的列中,插入一个表格来显示导航按钮.右边的栏中,放置一个表格来实际内容.(见图一)这样嵌套的表格生成的代码是这样的:  <TABLE BORDER="0">  <TR>  <TD COL