Asp.Net性能优化 记录篇
Asp.Net性能优化 分两方面
1.设计时
1.权衡安全性和性能
动态的ADO.NET数据库连接池
加密算法的选择
2.应用程序的逻辑层ixing一个
尽可能的将各层部署在一起:in-process>cross-process>remote network
3.减少客户端与服端器或者服务器间的往返
在执行一个长时间的服务器操作前,使用HttpResponse.IsClientConnected检查客户端是否保持连接
使用缓存
输出缓存
尽可能的使用Server.Transfer代替Response.Redirect
4.避免长时间运行任务的阻塞
使用异步调用Web Service或者Remote Object
5.使用Caching
缓存对性能影响大的数据和输出
缓存数据应该是静态的或者是很少变动的,而且使用频繁
使用user control封装静态页面的内容,使其与动态内容分离。
选择正确的缓存机制:session,response caching,user control。
6.避免不必要的异常
设计代码去避免异常:验证用户输入,对已知情况进行检查
避免使用异常控制逻辑流程
避免依赖全局异常来处理所有异常:尽可能的就进catch和处理异常
尽早检查复杂操作的依赖项
避免大量的异常信息呈现给用户。
2.实现时
1.线程指导
避免手动创建基于客户端请求的线程
使用ThreadPool.QueueUserWorkItem或者异步调用
避免阻塞线程
2.资源管理
晚获取,早释放
不要缓存池资源
显式的调用Dispose或者Close释放打开的资源:finally;using
3.页面
减小页面大小
使用include,js,删除页面空格和tabs
禁用不必要的viewstate
限制图片的使用,使用压缩图像
避免长的控件名称
使用Buffering
使用Page.IsPostBack减少多余的处理
划分页面内容提交的caching效率
设置<compilation debug="false".../>
设置客户端校验
3.数据绑定
避免使用Page.DataBind
少使用DataBinder.Eval
4.数据访问
对大数据量的结果集使用分页
使用DataReader做数据绑定
防止用户请求大量数据
考虑缓存数据