ASP.NET 性能优化,WebFrom(aspx)项目中常用的一些性能优化

ASP.NET性能优化建议包括以下几点数据库访问性能优化,字符串操作性能优化,禁用调试模式等等,感兴趣的盆友可以参考下。


1、数据库访问性能优化
(1).尽量减少数据库连接,并充分利用每次数据库连接:连接的创建、打开和关闭是有开销的。可以使用连接池
(2).合理使用存储过程:存储过程是存储在服务器端的一组预编译的SQL。使用存储过程可以避免对SQL的多次编译,后续查询可以复用之前的执行计划。另外存储过程可以减少SQL语句网络传输开销

(3).优化SQL语句:这个就太多了,如合理使用索引、视图,避免复杂子查询


2、字符串操作性能优化
(1).使用值类型的ToString()方法
对不同类型进行字符串连接时,会发生装箱操作转化为引用类型再添加到字符串中。装箱操作会在托管堆中分配一个新对象,将原有的值复制到新对象中,代价很高。使用ToString()方法可以避免装箱,从而提高性能

(2).利用StringBuilder类,然后ToString()输出。


3、禁用调试模式


4、只要合适,尽量缓存数据和页面输出


5、不要依赖代码中的异常来控制程序正常流程,异常的开销是很大的,慎用异常。


6、使用Page.IsPostBack避免往返过程的不必要处理
代码如下:
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        // 业务逻辑,如读取数据库等操作
        // ...
    }
}

7、如果不使用会话状态,可以禁用它或者设置只读
(1).若要禁用页的会话状态,请将 @ Page 指令中的 EnableSessionState 属性设置为false。例如:

代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="DemoWebForm.WebForm1" EnableSessionState="false" %>


(2).注意如果页需要访问会话变量,但不打算创建或修改它们,则将 @ Page 指令中的 EnableSessionState 属性设置为 ReadOnly。

代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="DemoWebForm.WebForm1" EnableSessionState="ReadOnly" %>


8、利用成熟的工具进行性能测试。
作者最新文章
C# 删除一维数组内的某个值(元素), C# 删除数组元素的方法
C# 如何判断一个字符串是否包含另一个字符串的方法,C# IndexOf 的使用
Winform 只能输入整数的TextBox (文本框) 控件
Winform 禁止重复启动,单实例exe程序
Winform TextBox (文本框) 控件禁止输入内容