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

 

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方法

转载于:https://www.cnblogs.com/ayuan/archive/2006/08/27/487845.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值