您的位置:首页 > 编程语言 > ASP

[学习笔记] ASP.NET应用程序性能优化

2006-08-27 22:15 525 查看
ASP.NET应用程序性能优化

一. 页面和服务器处理
1. 避免与服务器端的往返行程
eg: a. 一次读取大量数据,在客户端处理之后再同意向数据库提交;
b. ajax,前端页面不刷新,单独线程与服务器交互,减少服务器往返可以提高性能。
2. 用IsPostback避免往返过程中的额外操作
页面事件过程:Page_PreInit -> Page_Init -> Page_Load -> Control events -> Page_PreRender -> Page_Unload
任何 page 加载都要走一个完整的页面过程,使用 IsPostback 可以过滤一些步骤。
3. 谨慎使用服务器端控件
服务器控件封装一些事件,更占开销。可以考虑使用 Html 控件。
4. 视图状态 ViewState
关闭整个页面的试图状态 <%@ EnableViewState="false"%>,也可以关闭指定控件试图状态。
二. 状态处理
1. 禁用绘画状态
a. 在会话未被使用时,禁用会话
<%@ Page EnableSessionState="false"%>
b. 使用只读绘画
<%@ Page EnableSessionState="ReadOnly"%>
c. 禁用 Web Service 的胡话状态
[WebMethod(false)]
[WevMethod(EnableSession=false)]
d. 禁用应用程序绘画
在 web.config 中<sessionState Mode="Off">
2. 慎重选择会话状态提供程序
a. 进程内绘画状态
asp.net 默认模式,速度最快。
仅在会话状态中使用少量容易丢失的数据,不会对应用程序产生较大影响。

在 web.config 中<sessionState Mode="InProc">
b. Windows 服务 进程外会话状态
在 web.config 中<sessionState Mode="StateServer" stateConnectionstring=”tcpip=localhost:端口号”>
c. SQL Server 数据库中的进程外会话状态

在 web.config 中<sessionState Mode="SQLServer" allowCustomerDatabase=”false” stateConnectionstring=”database=数据库名/sql2005;uid=sa”>

在控制台:aspnet_reg.exe –s 数据库名\sql2005 –u –ssad –sstype p

三. 数据访问

1. 将存储过程用于数据访问
2. 使用SqlDataReader 获得快进只读数据游标
3. 尽可能缓存数据和页面输出

不需要动态计算输出的页面,考虑使用页面缓存
注意:a. 不要使用太多缓存(占用服务器内存)
b. 缓存时间不能太短
四. Web引用程序
1. 大型应用程序,先执行预编译
2. 必要的时候,调整每个应用程序进程的线程数
3. 禁用调试模式
4. 优化应用程序配置文件
a. 是否需要身份验证
b. 字符集(整站使用 ascii,配置成 utf-8,少许提高性能)
c. 清除HttpModual中不用的模块
五. 编码优化
1. 不要依赖代码中的异常捕获,用判断处理
2. 大量字符串链接,使用StringBuilder
3. 不要使用过多内存
4. 尽量避免使用Finalize方法的对象,重写Dispose方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: