ASP.NET性能优化建议包括以下几点数据库访问性能优化,字符串操作性能优化,禁用调试模式等等,感兴趣的盆友可以参考下。
(1).尽量减少数据库连接,并充分利用每次数据库连接:连接的创建、打开和关闭是有开销的。可以使用连接池
(2).合理使用存储过程:存储过程是存储在服务器端的一组预编译的SQL。使用存储过程可以避免对SQL的多次编译,后续查询可以复用之前的执行计划。另外存储过程可以减少SQL语句网络传输开销
(3).优化SQL语句:这个就太多了,如合理使用索引、视图,避免复杂子查询
(1).使用值类型的ToString()方法
对不同类型进行字符串连接时,会发生装箱操作转化为引用类型再添加到字符串中。装箱操作会在托管堆中分配一个新对象,将原有的值复制到新对象中,代价很高。使用ToString()方法可以避免装箱,从而提高性能
(2).利用StringBuilder类,然后ToString()输出。
3、禁用调试模式
4、只要合适,尽量缓存数据和页面输出
5、不要依赖代码中的异常来控制程序正常流程,异常的开销是很大的,慎用异常。
代码如下:
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" %>