System.Runtime.Caching.Cache 有很多项目的表现

System.Runtime.Caching.Cache performance with many items

在我的网站中,由于存储过程中有许多连接 returns 结果,我想缓存每个页面的结果,并仅在发生更改时删除并重新添加。

现在的问题是,在这种情况下,我需要从缓存中为每个页面找到大约 200000 个缓存项。我想知道有很多项目的缓存性能如何?

我知道,我应该将其与 运行 存储过程的速度进行比较,但在这里我想知道的是缓存速度而不是它的相关性和与从数据库获取结果的比较。换句话说,我想知道增加缓存项的数量会对性能产生多大影响?

缓存查找的复杂度为 O(1)。因此,只要您实际上将所有必要的数据都放入内存中,查找项目的速度就不会改变。

确保您是否有足够的 RAM,使用 x64 machine/build 并确实 运行 您自己的性能测试以确认您的缓存适用于您的情况。

如果您想仔细检查 - http://referencesource.microsoft.com/#System.Runtime.Caching/System/Caching/MemoryCache.cs

上有源代码