1

我写了简单的测试

  1. 将 100 个项目添加到 [收藏]
  2. 从[收藏]中随机读取1000000次

什么时候

  • [集合]==HttpContext.Current.Items 需要 50 毫秒
  • [集合]==HttpRuntime.Cache 耗时 430ms
  • [集合]==哈希表|| [采集]==词典 170ms

我猜 HttpRuntime.Cache 的开销是同步的

我尝试更改 HashTable/Dictionary 的初始容量?但没有成功。

有谁知道这个 turbo HttpContext.Current.Items 的原因是什么?我可以创建这种对象来自定义缓存实现吗(当然有同步暗示)。

4

1 回答 1

2

缓存缓慢的原因是因为它是线程安全的- 正如您所猜测的那样。

for 的底层类型HttpContext.Current.Items是一个普通的Hashtable. 也许如果您放一段代码,我就可以解释与第三项的区别。

于 2011-02-16T11:31:41.230 回答