MvcSiteMap 提供程序性能问题

发布于 2024-12-21 15:12:27 字数 309 浏览 2 评论 0原文

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

时间全部消耗在这个调用中,因为在动态节点提供程序中分析我的代码需要 28 毫秒。

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

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

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

I am using a dynamic node provider which contains 6000 nodes in total. The first time a razor view is requested which contains
@Html.MvcSiteMap().SiteMapPath(), the page can take up to 7500ms to load.

The time is all taken up within this call as when profiling my code within the dynamic node provider it takes 28ms.

If I take out all of the dynamic nodes in the mvc.sitemap the code returns very quick 280ms.

Is there any way to pre-load this - I am using IIS 7 and therefore cant use the app warm up module or the new app startup warming part if IIS 7.5.

I'm using the latest NuGet version 3.2.1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

自由如风 2024-12-28 15:12:27

MvcSiteMapProvider v4 由于多项增强功能:

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

Performance has been significantly improved in MvcSiteMapProvider v4 due to several enhancements:

  1. The internal dictionaries now use generics rather than HashTable (which uses System.Object).
  2. The type passed around is now ISiteMapNode, so it no longer needs to be casted before it is used.
  3. The cache has been completely redesigned to take advantage of the System.Runtime.Caching.ObjectCache extension point of .NET.
  4. The ACL module has been streamlined to execute faster.
  5. Request caching is now done automatically on some expensive operations.
  6. The menu and sitemap have been reworked to call the ACL module only when necessary.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文