【问题标题】:How increase the performance of asp.net application?如何提高asp.net 应用程序的性能?
【发布时间】:2011-08-02 20:34:08
【问题描述】:

嗨 当多个用户访问我的应用程序大约 5000 个用户时,我想提高 asp.net 应用程序的性能。

我们可以这样做吗

【问题讨论】:

  • 这个问题需要更多信息,并且更具体地说明您的问题。
  • 更多信息,同意...比如,这个应用程序是什么?你的硬件是什么?您目前可以支持多少用户?

标签: asp.net


【解决方案1】:

您的 ASP.NET 应用程序性能取决于各种因素。您可以通过做各种事情来提高您网站的性能。您的问题非常主观,当然答案将是一些关于提高 ASP.NET 应用程序性能的最佳实践。

我从网上收集了一些提示。不幸的是,我不记得在哪里。搜索任何项目,您会发现许多资源可以帮助您实现它:

  • 使用缓存:
    • 页面输出缓存。
    • 页面片段缓存。
    • 数据缓存。
  • 避免频繁访问数据库。
  • 使用 DB 级分页。不要检索不会在当前页面中显示的不必要数据。
  • 小心使用会话变量。通常,您应该避免使用会话变量,因为每个 ASP 页面都在不同的线程中运行,并且会话调用将被一一序列化。因此,这会减慢应用程序的速度。您可以使用 QueryString 集合或保存值的表单中的隐藏变量来代替会话变量。
  • 在为您的应用程序进行最终构建之前选择发布模式。
  • 编译下设置debug=false:<compilation default Language="c#" debug="false">
  • 避免内联 JavaScript 和 CSS
  • 使用 finally 方法杀死资源。 (但不是在使用的情况下)
  • 避免异常:使用 If 条件(如果它是检查适当的条件)
  • 检查“Page.IsPostBack”。避免重复代码执行。
  • 使用单个 css 文件而不是多个 css 文件。
  • 使用客户端验证。 (但并非所有时间都必须在服务器端进行验证)。
  • 除非需要,否则关闭跟踪。
  • 如果不需要,请关闭会话状态。
  • 在不需要时禁用 ViewState。
  • 尝试使用 StringBuilder 代替字符串。

    修改字符串时最好使用 Stringbuilder 而不是 String。在 stringbuilder 使用单个内存位置的情况下,字符串在每次修改时占用不同的内存位置。

  • 永远不要直接使用对象值;首先获取局部变量中的对象值,然后使用。它需要更多的时间然后变量读取。
  • 避免使用像 x = x +1 这样的代码;使用 x+=1 总是更好。
  • 数据访问技术:DataReader 提供了一种快速有效的数据检索方法。就性能而言,DataReader 比 DataSets 快得多。但这取决于您决定在功能/性能之间取得平衡。
  • 使用Repeater控件代替DataGrid、DataList,因为它高效、可定制、可编程。
  • 减小 cookie 大小。
  • 压缩 CSS、JavaScript 和图像。
  • 使用Port80s等服务器端压缩软件
  • 使您的页面文件尽可能轻。那是尽量避免不必要的标记,例如使用 div 元素而不是表格。
  • 在 div 中写入静态消息,并在必要时使其可见。这比让服务器设置标签或 div 的 Text 属性要快。
  • 如果可能,立即从数据库中检索必要的数据。尽量不要累加数据库行程。为此,请组合来自不同表的数据字段并选择它们。

【讨论】:

    【解决方案2】:

    从您的 html 中删除空格它将增加您的 kb。您可以使用正则表达式来删除空格。我将在下一篇文章中发布删除空格的代码。

    对于 asp.net 2.0 和更高版本,请使用母版页。它会提高你的表现。

    对 ado.net 方法使用 ADO.NET 异步调用。 asp.net 2.0 或更高版本支持您的性能。如果您多次使用相同的过程或命令,请使用 ADO.NET Prepare 命令,它将提高您的性能。

    根据您的要求进行 IIS 性能调整。

    如果可能,请禁用控件的视图状态。如果您使用的是 asp.net 2.0 或更高版本,则使用 asp.net 控制状态而不是视图状态。通过覆盖存储视图状态的默认方法将视图状态存储在会话或数据库中

    在您的应用程序中明智地使用 Ajax。对页面的大量 Ajax 调用也会降低您的性能。

    从 java 脚本而不是服务器端调用 web 服务。使用异步调用从 Web 服务调用 Web 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多