缓存函数结果
本文关键字:结果 函数 缓存 | 更新日期: 2023-09-27 17:51:14
假设我有一个函数Func<int,int,int>
。现在我想缓存(并快速查找)函数结果。
要求:
- 固定缓存大小(例如,1000个三元组(input, input, result))。
- 快速查找和快速存储在缓存中
- 如果缓存已满,则应该删除最长时间未访问(查找)的条目。
应该使用什么样的数据结构?
使用。net缓存,或者使用MemoryCache,这是一个非web特定的缓存
您可以使用CacheMemoryLimit属性指定缓存可以使用的内存量。
当缓存已满时,您可以修剪所需的条目百分比,并且条目将根据需要删除:
…将根据最近最少使用(LRU)算法从缓存中删除条目,直到达到请求的修剪百分比
缓存中每个项的键需要是字符串,所以我将输入格式设置为{0}-{1}
或类似的格式。您可能想要执行一些性能测试来满足您的需求,但我相信这将与任何其他解决方案一样快。