一、 缓存 缓存是ASP.NET中提高性能的重要手段,缓存一般遵循以下原则: 1) 在页面中将静态内容与动态内容分割开来 考虑将动态内容作成用户控件 2) 缓存合理的数据 一般应当缓存应用程序集的数据、多个用户共同使用的数据、静态数据、生成数据需要很大开销的动态数据、DataSet以及自定义对象等。不要缓存数据库连接对象、DataReader。 3) 选择适当的方式 如可以使用页面缓存指令,API等。 二、 视图状态 视图状态放在页面中名为_VIEWSTATE的表单隐藏域里面,随页面一起被发送到客户端,在用户提交页面时,又被提交到服务器。 1) 如果不需要视图状态,则禁用 视图状态默认是允许的,如果页面不进行PostBack,如果不处理服务器控件的事件,如果服务器控件的数据每次都需要重新计算等 2) 尽量减少视图状态中存放的对象 三、 关于页面处理(减少页面生成的时间和过程) 1) 应尽量减少页面文件的大小 2) 通过检测Page.IsPostBack减少代码执行的数量 3) 禁止使用Debug=“true”,减少页面生成过程中生成额外的调试信息 4) 使用Server.Transfer而不使用Response.Redirect,减少服务器和客户端间的往返 5) 尽量使用客户端验证,减少服务器和客户端间的往返 6) 在适当的场合使用服务器控件 7) 尽量避免嵌套的服务器控件 四、 避免使用Page.DataBind和DataBinder.Eval 五、 关于Application对象和Session对象 1) 使用静态属性存储数据而不使用Application对象,在Application对象里存储只读类型的数据都将回提高性能 2) 尽量使用InProc模式的Session,这个模式是最快的 3) 在Session里存储基本类型的数据减少序列化的所消耗的资源 4) 如果不用Session变量,使用EnvableViewState=“false”禁用 5) 如果不修改Session变量的值,尽量使用ReadOnly属性设置 六、 关于字符串操作 1) 尽量使用Response.Write将结果输出到浏览器,这种方法是最快的。不要将字符串连接在一起一次输出。 2) 在字符串短并且少的情况下可以使用String.Concat方法,而在字符串长度未知,并且字符串大的情况下,使用StringBuilder对象 3) 不要使用strVar==“”来判断字符串是否为“”,这样它会创建额外的字符串,请使用strVar==String.Empty代替或者使用strVar.Length==0来判断 4) 请使用String.Compare方法进行字符串的比较 |