【问题标题】:MvcSiteMap Provider performance issueMvcSiteMap Provider 性能问题
【发布时间】:2012-01-21 05:06:51
【问题描述】:

我正在使用一个动态节点提供程序,它总共包含 6000 个节点。第一次请求剃刀视图,其中包含 @Html.MvcSiteMap().SiteMapPath(),页面加载最多需要7500ms。

所有时间都在此调用中占用,因为在动态节点提供程序中分析我的代码需要 28 毫秒。

如果我取出 mvc.sitemap 中的所有动态节点,代码会很快返回 280 毫秒。

有什么方法可以预加载这个 - 我使用的是 IIS 7,因此如果 IIS 7.5,则不能使用应用程序预热模块或新的应用程序启动预热部分。

我使用的是最新的 NuGet 版本 3.2.1

【问题讨论】:

    标签: asp.net-mvc-3 mvcsitemapprovider asp.net-mvc-sitemap


    【解决方案1】:

    由于多项增强功能,MvcSiteMapProvider v4 的性能得到了显着提升:

    1. 内部字典现在使用泛型而不是 HashTable(使用 System.Object)。
    2. 现在传递的类型是 ISiteMapNode,因此在使用之前不再需要强制转换。
    3. cache has been completely redesigned 可利用 .NET 的 System.Runtime.Caching.ObjectCache 扩展点。
    4. ACL 模块已经过简化,执行速度更快。
    5. 请求缓存现在在一些昂贵的操作上自动完成。
    6. 菜单和站点地图已重新设计,仅在必要时调用 ACL 模块。

    【讨论】:

      猜你喜欢
      • 2020-06-13
      • 1970-01-01
      • 2017-04-13
      • 2022-01-04
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2012-09-25
      相关资源
      最近更新 更多