Dzwebs.Net

撰写电脑技术杂文十余年

ASP.NET2.0程序性能优化

Admin | 2013-6-7 10:47:26 | 被阅次数 | 4619

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  使用ASP.NET2.0开发的网站,是特别的消耗服务器的CPU,会导致应用程序池的资源被全部占用而出现service unavailable,甚至是网站无法正常打开。

  同样,如果你的ASP.NET2.0网站所使用的数据库又是MS SSQL的话,那么,这真的是绝配了,前者就占资源了,后者同样也不是省油的灯,也特别占资源,稍有设置上的不当,那么,问题也就出来了。

  下面,针对初学的人,本站为大家介绍如何优化asp.net2.0的程序。

  1、性能优化之最

  <compilation debug="false">

  注意哦,在配置文件中,如果网站已发布,那么,请记得将debug设置为false,否则,网站访问速度将变得很慢。

  2、Session的优化

  • 若要禁用页的会话状态,请将@ Page 指令中的EnableSessionState 属性设置为false。例如,<%@ Page EnableSessionState="false" %>。
  • 注意如果页需要访问会话变量,但不打算创建或修改它们,则将@ Page 指令中的EnableSessionState 属性设置为ReadOnly。还可以禁用XML Web services 方法的会话状态。有关更多信息,请参见使用ASP.NET 和XML Web services 客户端创建的XML Web services。
  • 若要禁用应用程序的会话状态,请在应用程序Web.config 文件的sessionstate 配置节中将mode 属性设置为off。例如,<sessionstate mode="off" />。

  3、尽量使用客户端脚本

        通常,只有在检索或存储数据时,您才需要启动到服务器的往返过程。多数数据操作可在这些往返过程间的客户端上进行。

  4、使用Page.IsPostback避免对往返过程执行不必要的处理

  • 如果您编写处理服务器控件回发处理的代码,有时可能需要在首次请求页时执行其他代码,而不是当用户发送包含在该页中的HTML 窗体时执行的代码。根据该页是否是响应服务器控件事件生成的,使用Page.IsPostBack 属性有条件地执行代码。
  • 注意如果不运行这种检查,回发页的行为将不更改。Page_Load 事件的代码在执行服务器控件事件之前执行,但只有服务器控件事件的结果才可能在输出页上呈现。如果不运行该检查,仍将为Page_Load 事件和该页上的任何服务器控件事件执行处理。

  5、在适当的环境中使用ASP.NET 服务器控件

  检查您的应用程序代码以确保对ASP.NET服务器控件的使用是必要的。即使它们非常易于使用,但是服务器控件并不总是完成任务的最佳选择,因为它们会使用服务器资源。在许多情况下,一个简单的呈现或数据绑定代入就可以完成任务。

  6、使用值类型的ToString方法

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

  使用值类型的ToString方法可以避免装箱操作,从而提高应用程序性能。

  int num=1;
  string str="go"+num.ToString();

  7、运用StringBuilder类

  String类对象是不可改变的,对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法ToString对性能的提高并非很显著。

  在处理字符串时,最好使用StringBuilder类,其.NET 命名空间是System.Text。该类并非创建新的对象,而是通过Append,Remove,Insert等方法直接对字符串进行操作,通过ToString方法返回操作结果。

  其定义及操作语句如下所示:

  int num;

  System.Text.StringBuilder str = new System.Text.StringBuilder(); //创建字符串

  str.Append(num.ToString()); //添加数值num

  Response.Write(str.ToString); //显示操作结果

  8、避免使用ArrayList

  因为任何对象添加到ArrayList都要封箱为System.Object类型,从ArrayList取出数据时,要拆箱回实际的类型。建议使用自定义的集合类型代替ArrayList。asp.net 2.0提供了一个新的类型,叫泛型,这是一个强类型,使用泛型集合就可以避免了封箱和拆箱的发生,提高了性能。


该杂文来自: 网站开发杂文

上一篇:net c#代码读取服务器端的Excel内容显示到客户端

下一篇:asp.net顺序、选择语句范例

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计