私が取り組んでいるプロジェクトの場合、同じ結果を返すために計算を信頼できる(そして副作用がない)状態がいくつかあります。明らかな解決策は、コストのかかるすべての機能にメモ化を使用することです。
複数の状態を処理するメモ化が必要になります(別のキャッシュセットを無効にせずに1つのキャッシュセットを無効にできるようにするため)。誰かがこの種のもののための良いCライブラリを知っていますか?(C ++にすることはできません。Cについて話していることに注意してください。)
私はPythonでいくつかの優れた実装を使用して、デコレータを使用してさまざまな関数を柔軟にメモできるようにしました。Cで同様のことを実行できる汎用ライブラリがあるのではないかと思います(ただし、便利な構文ではなく明示的な関数ラッピングを使用している可能性があります)。それが十分に一般的な問題である場合、各関数に個別にキャッシュを追加しなければならないのはばかげていると思います。それに対するいくつかの既成の解決策が必要です。
私が探している特徴は次のとおりです。
- さまざまなタイプの入力と出力で関数をキャッシュできます
- 複数の異なるキャッシュを管理します(したがって、短期および長期のキャッシュを使用できます)
- キャッシュを無効にするための優れた機能があります
- 既存の関数を変更するのではなく、関数をラップすることによって使用されることを目的としています
これらの必要条件のすべてまたはほとんどを処理できるC実装を知っている人はいますか?