3

合計 6000 ノードを含む動的ノード プロバイダーを使用しています。@Html.MvcSiteMap().SiteMapPath() を含むカミソリ ビューが初めて要求されると、ページの読み込みに最大 7500 ミリ秒かかる場合があります。

動的ノード プロバイダー内でコードをプロファイリングするときは 28 ミリ秒かかるため、この呼び出し内ですべての時間が費やされます。

mvc.sitemap のすべての動的ノードを取り出すと、コードは 280 ミリ秒という非常に速い速度を返します。

これをプリロードする方法はありますか - 私は IIS 7 を使用しているため、IIS 7.5 の場合はアプリのウォームアップ モジュールまたは新しいアプリのスタートアップ ウォーミング パーツを使用できません。

最新の NuGet バージョン 3.2.1 を使用しています

4

1 に答える 1

0

MvcSiteMapProvider v4 では、いくつかの機能強化により、パフォーマンスが大幅に改善されました。

  1. 内部辞書は、HashTable (System.Object を使用) ではなくジェネリックを使用するようになりました。
  2. 渡される型が ISiteMapNode になったため、使用する前にキャストする必要がなくなりました。
  3. キャッシュは、.NET の System.Runtime.Caching.ObjectCache 拡張ポイントを利用するために完全に再設計されました。
  4. ACL モジュールが合理化され、より高速に実行できるようになりました。
  5. 要求のキャッシュは、いくつかの高価な操作で自動的に行われるようになりました。
  6. メニューとサイトマップは、必要な場合にのみ ACL モジュールを呼び出すように作り直されました。
于 2013-08-18T10:43:09.573 に答える