gpt4 book ai didi

.net - 如何提高 ASP.NET MVC 应用程序性能?

转载 作者:行者123 更新时间:2023-12-03 04:09:03 26 4
gpt4 key购买 nike

如何提高 ASP.NET MVC 应用程序性能?

最佳答案

可能的改进来源的汇编列表如下:

一般

  • 使用分析器来发现应用程序中的内存泄漏和性能问题。我个人建议dotTrace
  • 在生产环境以及性能分析期间,以 Release模式(而不是 Debug模式)运行您的网站。 Release模式要快得多。 Debug模式可以隐藏您自己的代码中的性能问题。

缓存

  • 使用CompiledQuery.Compile()递归地避免重新编译您的查询表达式
  • 缓存不易更改内容使用 OutputCacheAttribute节省不必要的行动处决
  • 对经常访问的非敏感信息使用 Cookie
  • 利用ETags和到期 - 写下您的自定义ActionResult必要时的方法
  • 考虑使用RouteName组织你的路线,然后用它来生成你的链接,尽量不要使用基于表达式树的ActionLink方法。
  • 考虑实现路由解析缓存策略
  • 将重复代码放入 PartialViews 中,避免渲染它xxxx次:如果你最终在同一个 View 中调用同一个部分 300 次,可能有什么问题错了。 Explanation And Benchmarks

路由

安全

  • 使用表单例份验证,将您经常访问的敏感数据保存在身份验证票

DAL

负载均衡

  • 利用反向代理将客户端负载分散到您的应用实例上。 (Stack Overflow 使用 HAProxy ( MSDN )。

  • 使用Asynchronous Controllers实现依赖于外部资源处理的操作。

客户端

  • 优化您的客户端,使用类似 YSlow 的工具为了提高性能的建议
  • 使用 AJAX 更新 UI 组件,尽可能避免整个页面更新。
  • 考虑实现发布-订阅架构 - 即Comet-用于内容交付基于超时重新加载。
  • 如果可能,将图表和图形生成逻辑移至客户端。图生成是一项昂贵的事件。将您的服务器从不必要的负担,并允许您在本地处理图表而无需创建新的请求(即 Flex 图表、 jqbargraphMoreJqueryCharts )。
  • 将 CDN 用于脚本和媒体内容,以改善客户端的加载(即 Google CDN )
  • 缩小 - Compile - 您的 JavaScript,以提高脚本大小
  • 将 Cookie 保持较小的大小,因为每次请求时都会将 Cookie 发送到服务器。
  • 考虑使用DNS and Link Prefetching如果可能的话。

全局配置

  • 如果您使用 Razor,请在 global.asax.cs 中添加以下代码,默认情况下,Asp.Net MVC 使用 aspx 引擎和 razor 引擎进行渲染。这仅使用 RazorViewEngine。

    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new RazorViewEngine());

  • 在 web.config 中添加 gzip(HTTP 压缩)和静态缓存(图像、CSS...) <system.webServer>
    <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true"/>
    </system.webServer>

  • 删除未使用的 HTTP 模块
  • 生成 HTML 后立即刷新(在 web.config 中),并在不使用 View 状态时禁用它 <pages buffer="true" enableViewState="false">

关于.net - 如何提高 ASP.NET MVC 应用程序性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2246251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com