对于我正在从事的项目,有许多州可以依靠计算来返回相同的结果(并且没有副作用)。显而易见的解决方案是对所有昂贵的功能使用记忆。
我需要有处理多个状态的记忆(这样我就可以使一个缓存集无效而不使另一个无效)。有人知道这类事情的好 C 库吗?(请注意,它不能是 C++,我们说的是 C。)
我在 Python 中使用过一些很好的实现,它们使用装饰器能够灵活地记忆一堆不同的函数。我有点想知道是否有一个通用库可以用 C 做类似的事情(尽管可能使用显式函数包装而不是方便的语法)。我只是认为,当这是一个足够普遍的问题时,必须为每个函数单独添加缓存是愚蠢的,必须有一些现成的解决方案。
我要寻找的特征如下:
- 可以缓存具有各种输入和输出类型的函数
- 管理多个不同的缓存(因此您可以拥有短期和长期缓存)
- 具有很好的使缓存失效的功能
- 旨在通过包装函数使用,而不是更改现有函数
有人知道可以处理所有或大部分这些要求的 C 实现吗?