对于我正在研究的项目,有许多州可以依赖计算来返回相同的结果(并且没有副作用).显而易见的解决方案是对所有昂贵的功能使用memoization.
我需要有一个处理多个状态的memoization(这样我就可以使一个缓存集无效而不会使另一个缓存集无效).对于这种事情,有人知道一个好的C库吗?(注意它不能是C++,我们正在谈论C.)
我已经在Python中使用了一些很好的实现,它们使用装饰器来灵活地记忆一堆不同的函数.我有点想知道是否有一个通用库可以用C做类似的事情(尽管可能有明确的函数包装而不是方便的语法).我认为,当一个常见的问题必须有一些现成的解决方案时,必须单独为每个功能添加缓存是愚蠢的.
我要寻找的特征如下:
有人知道可以处理所有或大部分这些必需品的C实现吗?
Nam*_*mey 11
好的,因为没有用于C的memoization库而我正在寻找一个用于在代码库中记忆现有C函数的插件解决方案,我创建了自己的小memoization库,我将在APL 2.0下发布.希望人们会发现这很有用,它不会在其他编译器上崩溃和烧毁.如果确实有问题,请在此留言,每当我有时间时(我可能会以几个月的增量来衡量),我会调查它.
这个库不是为了速度而构建的,但是它可以工作并且已经过测试,以确保它使用相当简单,并且在我的测试中不显示任何内存泄漏.从根本上说,这让我可以将memoization添加到类似于我在Python中习惯的装饰器模式的函数中.
该库目前在SourceForge上作为C-Memo库.它附带了一个小的用户手册和几个第三方允许的许可库,用于通用散列.如果位置发生变化,我会尝试更新此链接.我发现这有助于我的项目工作,希望其他人会发现它对他们的项目有用.