ASP.NET性能优化八条建议
程序员文章站
2024-03-05 22:00:49
1、数据库访问性能优化 a、尽量减少数据库连接,并充分利用每次数据库连接:连接的创建、打开和关闭是有开销的。可以使用连接池 b、合理使用存储过程:存储过程是存储在服务器端的...
1、数据库访问性能优化
a、尽量减少数据库连接,并充分利用每次数据库连接:连接的创建、打开和关闭是有开销的。可以使用连接池
b、合理使用存储过程:存储过程是存储在服务器端的一组预编译的sql。使用存储过程可以避免对sql的多次编译,后续查询可以复用之前的执行计划。另外存储过程可以减少sql语句网络传输开销
c、优化sql语句:这个就太多了,如合理使用索引、视图,避免复杂子查询
2、字符串操作性能优化
a、使用值类型的tostring()方法
对不同类型进行 + 连接时,会发生装箱操作转化为引用类型再添加到字符串中。装箱操作会在托管堆中分配一个新对象,将原有的值复制到新对象中,代价很高。使用tostring()方法可以避免装箱,从而提高性能
b、利用stringbuilder类
3、禁用调试模式
4、只要合适,尽量缓存数据和页面输出
5、不要依赖代码中的异常来控制程序正常流程
异常的开销是很大的。所以慎用异常。
6、使用page.ispostback避免往返过程的不必要处理
void page_load(object sender, eventargs e) // set up a connection and command
{
if (!page.ispostback) // 第一次加载时才填充数据
{
string query = "select * from authors where firstname like '%justin%'";
mycommand.fill(ds, "authors");
mydatagrid.databind();
}
}
7、如果不使用会话状态,可以禁用它或者设置只读
a、若要禁用页的会话状态,请将 @ page 指令中的 enablesessionstate 属性设置为false。例如:
<%@ page enablesessionstate="false" %>
b、注意如果页需要访问会话变量,但不打算创建或修改它们,则将 @ page 指令中的 enablesessionstate 属性设置为 readonly。
8、利用成熟的工具进行性能测试
a、尽量减少数据库连接,并充分利用每次数据库连接:连接的创建、打开和关闭是有开销的。可以使用连接池
b、合理使用存储过程:存储过程是存储在服务器端的一组预编译的sql。使用存储过程可以避免对sql的多次编译,后续查询可以复用之前的执行计划。另外存储过程可以减少sql语句网络传输开销
c、优化sql语句:这个就太多了,如合理使用索引、视图,避免复杂子查询
2、字符串操作性能优化
a、使用值类型的tostring()方法
对不同类型进行 + 连接时,会发生装箱操作转化为引用类型再添加到字符串中。装箱操作会在托管堆中分配一个新对象,将原有的值复制到新对象中,代价很高。使用tostring()方法可以避免装箱,从而提高性能
b、利用stringbuilder类
3、禁用调试模式
4、只要合适,尽量缓存数据和页面输出
5、不要依赖代码中的异常来控制程序正常流程
异常的开销是很大的。所以慎用异常。
6、使用page.ispostback避免往返过程的不必要处理
复制代码 代码如下:
void page_load(object sender, eventargs e) // set up a connection and command
{
if (!page.ispostback) // 第一次加载时才填充数据
{
string query = "select * from authors where firstname like '%justin%'";
mycommand.fill(ds, "authors");
mydatagrid.databind();
}
}
7、如果不使用会话状态,可以禁用它或者设置只读
a、若要禁用页的会话状态,请将 @ page 指令中的 enablesessionstate 属性设置为false。例如:
复制代码 代码如下:
<%@ page enablesessionstate="false" %>
b、注意如果页需要访问会话变量,但不打算创建或修改它们,则将 @ page 指令中的 enablesessionstate 属性设置为 readonly。
8、利用成熟的工具进行性能测试