gpt4 book ai didi

asp.net-mvc - MVC View 查找缓存。缓存多长时间?它缓存在哪里?

转载 作者:行者123 更新时间:2023-12-03 02:10:05 25 4
gpt4 key购买 nike

我们正在优化一个网站,并了解到初始 View 查找需要很长时间的问题。随后的 View 查找速度会快得多。迷你分析器显示,很多时间都在初始查找 View 中(我知道我可以使用 ~ 路径来减少这种情况)以及此阶段完成的其他操作。

缓存在哪里完成? View 查找等缓存多长时间?我可以查看缓存的内容吗?我们可以做些什么来使其预加载,这样就不会出现延迟吗?

我们有许多 View ,通常几个小时内都不会被访问,我不希望性能出现突然的高峰和低谷。

我们正在使用 Azure 并拥有许多 Web 角色实例。我可以假设每个 Web 角色都有自己的 View 查找缓存吗?我们可以集中缓存,以便每个应用程序只发生一次吗?

我还读到 MVC4 查找 View 的速度更快?有谁有数据吗?

最佳答案

默认缓存为15分钟,存储在HttpContext.Cache中,这全部由System.Web.Mvc.DefaultViewLocationCache类管理。由于这使用标准 ASP.NET 缓存,因此您可以使用自定义缓存提供程序,该提供程序从 WAZ AppFabric 缓存或新的缓存预览(NuGet 上有一个: http://nuget.org/packages/Glav.CacheAdapter )获取其缓存。使用共享缓存将确保只有 1 个实例需要执行解析 View 的工作。或者您可以构建自己的缓存提供程序。

在 Release模式下运行应用程序、清除不需要的 View 引擎、编写确切的路径而不是简单地调用 View,...都是加快 View 查找过程的方法。在这里阅读更多相关信息:

您可以通过将每个 View 的键添加到缓存来预加载 View 位置。您应将其格式化如下(其中 this 是当前的 VirtualPathProviderViewEngine):

string.Format((IFormatProvider) CultureInfo.InvariantCulture, ":ViewCacheEntry:{0}:{1}:{2}:{3}:{4}:", (object) this.GetType().AssemblyQualifiedName, (object) prefix, (object) name, (object) controllerName, (object) areaName);

我没有任何数据表明 MVC4 是否更快,但看起来 DefaultViewLocationCache 代码与 MVC3 相同。

关于asp.net-mvc - MVC View 查找缓存。缓存多长时间?它缓存在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11786808/

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