缓存函数结果

本文关键字:结果 函数 缓存 | 更新日期: 2023-09-27 17:51:14

假设我有一个函数Func<int,int,int>。现在我想缓存(并快速查找)函数结果。

要求:

  1. 固定缓存大小(例如,1000个三元组(input, input, result))。
  2. 快速查找和快速存储在缓存中
  3. 如果缓存已满,则应该删除最长时间未访问(查找)的条目。

应该使用什么样的数据结构?

缓存函数结果

使用。net缓存,或者使用MemoryCache,这是一个非web特定的缓存

您可以使用CacheMemoryLimit属性指定缓存可以使用的内存量。

当缓存已满时,您可以修剪所需的条目百分比,并且条目将根据需要删除:

…将根据最近最少使用(LRU)算法从缓存中删除条目,直到达到请求的修剪百分比

缓存中每个项的键需要是字符串,所以我将输入格式设置为{0}-{1}或类似的格式。您可能想要执行一些性能测试来满足您的需求,但我相信这将与任何其他解决方案一样快。