首页 > 编程 > .NET > 正文

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

2024-07-10 13:10:51
字体:
来源:转载
供稿:网友

 第一次在这里写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.避免对服务器进行不必的数据往返传输

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表