ASP.NET页面性能

Bob*_*ith 2 .net c# asp.net

我们有一个相当复杂的页面,动态加载用户控件(其中一些是嵌套的).这是一个非常慢的页面.

动态添加控件是否会增加瓶颈?如果我们在.NET缓存对象中添加控件而不使用LoadControl(如果它已经存在于缓存中)会有帮助吗?

有关使页面更快的任何其他提示/策略?

Dou*_*rch 10

我们曾将ASP.Net项目的性能提高了一个数量级.以下列出了我们尝试的内容:

  • 尽可能将SessionState设置为false或ReadOnly.请注意,为ASPages,Web服务和应用程序设置会话状态的方法是不同的.
  • 如果可能,在进程中存储会话状态.
  • 尽可能将EnableViewState设置为false.
  • 尽可能使用缓存.
  • 如果您不需要从服务器访问控件,请使用HTML控件而不是服务器端控件.
  • 尽可能避免往返(将数据提交到服务器并重新加载页面).请注意,您只需要往返从服务器读取数据或将数据写入服务器.验证和反馈可以在客户端完成.使用Page_Load中的IsPostBack属性可避免在回发时重新生成数据.
  • 使用StringBuilder类进行重复串联.
  • 仅在意外情况下使用try/catch块; 不要将它们用作一般控制结构.
  • 尽可能使用早期绑定.换句话说,避免反思.
  • 避免使用COM等非托管代码.
  • 禁用调试模式以运送应用程序.
  • 使用存储过程进行数据库访问而不是SQL字符串.
  • 使用DataReader类来读取数据而不是DataSet.
  • 尽可能使用限制性最强的类,例如SqlDataReader而不是DbDataReader.