问题标签 [httpcontext.cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1841 浏览

asp.net - HttpContext.Cache 物理内存使用

有没有办法找到当前在 HttpContext.Cache 中的内存字节数?

我发现在哪里可以使用 EffectivePrivateBytesLimit 或 EffectivePercentagePhysicalMemoryLimit 获得物理内存限制,但我很难找到当前的物理内存使用情况。

有任何想法吗 ?

- -更新 - -

在更多搜索和使用提到http://aspalliance.com/cachemanager/的第一个响应之后,我去了那个页面,在底部有一个指向http://www.codeproject.com/aspnet/exploresessionandcache.asp的链接描述了一种计算我认为可以使用的对象大小的方法。

基本上它序列化缓存中的每个对象,然后找到序列化流的长度。对这些值求和会产生一些我可以使用的信息。

0 投票
2 回答
1758 浏览

c# - 使用 c# 在 asp.net 中的缓存问题

我正在使用 fileuplaod 控件来上传图像。为此,我曾经将其存储在缓存中

以字节格式显示 2 小时,并使用 .ashx 文件中的 HttpContext 显示此图像。出于某种原因

有时会保存在缓存中,有时不会。我正在使用 asp.net 2.0 和 C# 语言。

我的保存代码:

使用 .ashx 文件渲染图像的代码:

将字节图像保存在缓存中是否有任何问题或任何其他更好的方法?

谢谢!桑杰帕尔

0 投票
2 回答
211 浏览

asp.net - 应该使用哪些技术来处理 asp.net 缓存中的对象,以防止多个 asp.net 工作线程访问的问题?

因为 asp.net 包含同时执行的多个线程。
因此,如果 2 个线程访问我从 asp.net httpcontext 缓存中获得的对象(简单或复杂)。
如果这两个头试图同时修改/读取它,这不会导致该对象的状态问题吗?
那么我应该采取什么样的预防措施呢?
例如,我在想可能在使用它时锁定对象?(这不会导致性能问题吗?)
或者当我从缓存中检索一些对象时,我应该从中创建一个副本?
或者我根本不需要担心这个问题?
谢谢

0 投票
1 回答
283 浏览

asp.net - httpcache问题

我有一个从数据库中提取的存储库,有时还从缓存中提取。

为了实现这一点,我创建了一个接口 ICacheWrapper,它允许 repo 使用 HttpRuntime.Cache、AppFabric 等等。ICacheWrapper 的具体类通常在其构造函数中使用缓存,如下所示: new HttpCacheWrapper(HttpRuntime.Cache)

repo 的构造函数引用缓存包装器,如下所示:

如果我创建 2 个存储库,缓存会被深度复制吗?我认为不会,但我们的性能问题表明并非如此。我在这里错过了什么吗?

谢谢你的帮助!

0 投票
4 回答
1759 浏览

c# - Application_End() 无法通过 HttpContext.Current.Cache[key] 访问缓存

我希望能够在应用程序重新启动之间维护某些对象。

为此,我想在 Global.asaxApplication_End()函数中将特定的缓存项写入磁盘,然后将它们重新加载到Application_Start().

我目前有一个缓存助手类,它使用以下方法返回缓存值:

问题: during Application_End(),HttpContext.Current为空,因为没有 Web 请求(这是一个自动清理过程) - 因此,我无法访问.Cache[]以检索任何要保存到磁盘的项目。

问题:我如何访问缓存中的项目Application_End()

0 投票
1 回答
783 浏览

c# - 如果我没有明确过期,默认情况下,东西会在 httpcache 中停留多长时间?

我有以下代码来缓存一些昂贵的代码。

这会永远留在缓存中吗?直到服务器重新启动或内存不足?

0 投票
2 回答
5004 浏览

asp.net - 如何查看 HttpContext.Cache 中的内容

是否有任何好的工具可以查看我的HttpContext.Cache.

0 投票
1 回答
1492 浏览

c# - HttpContext.Cache - 每个请求或每个应用程序域?

查看MSDN doc for .NET 2.0 of the HttpContext.Cacheobject 它说:

当前 HTTP 请求的缓存。

但是看看.NET 3.0版本它说:

当前应用程序域的缓存。

这是功能上的一个非常显着的差异。我使用它的经验一直是它是一个Per Request缓存。但是文档似乎不同意我的观点。正确的用法是什么?MSDN 文档错了吗?

0 投票
3 回答
2597 浏览

asp.net - 在 asp.net httpContext.Cache 中存储/检索项目的最有效方法是什么

我有一个网站,我缓存了很多信息。我看到有关在 asp.net 缓存中存储内容的信息相互矛盾。

例如,假设我有这个数据结构:

我可以用字符串键将整个内容存储为“MyDictionary”,然后在我拉出对象后向下钻取。

我可以做的另一件事是将它分解并将每个项目分别存储在我的字典中的缓存中(假设缓存无论如何都是字典)。

性能影响是否会有很大不同(假设我假设一切都在内存中?)

0 投票
1 回答
1404 浏览

asp.net - 缓存大量对象的方法(ASP.NET 缓存与静态对象和单独缓存对象与字典)

我正在编写一个在页面上显示项目列表的控件。该数据库包含(比方说)50,000 个与(比方说)1000 页相关(多对多)的项目。

我没有编写一个存储过程来从数据库中返回给定页面的一组完整项目(即所有列,以便水合项目对象列表),而是考虑执行以下操作来呈现列表:

  • 在应用程序启动时,缓存所有列表项
  • 让 SP 只返回项目的键值
  • 遍历键列表并从缓存中检索匹配的对象

初步测试表明,这比为每个页面请求从数据库中提取列表执行得更快。它似乎也减少了整体内存消耗,因为每个页面请求只会查找现有对象,而不是每个请求都创建一个私有列表(当流量很高并且请求大页面时,内存消耗会变得非常高)。

所以现在我正在和其他开发者讨论如何实现缓存。我们提出了几种选择,在这里我希望您能提出意见:

  • 使用 ASP.NET HttpContext.Current.Cache
  • 使用静态/单例对象

在其中的每一个中,还可以选择是否:

  1. 单独缓存每个项目对象
  2. 构建一个包含所有项目对象的字典(或类似列表),然后缓存字典

读取性能是主要关注点。维护是次要的问题——我们会防御性地编写我们的 GetItems 方法来检查每个项目是否在缓存中,如果没有,则从数据库中检索它并将其插入缓存中。

我知道没有正确的答案……每件事都有利有弊。我只是想看看人们是否有可以分享上述任何一种方法的陷阱,或者是否有任何方法脱颖而出,成为迄今为止表现最好的方法,或者特别难以将新数据合并到其中。

谢谢