キャッシュ

注釈

ユーザガイド内 Caches により平易な説明があります。

Canvas においてキャッシュとは、処理結果の値のコピーを保存し、上流の入力に変更がない場合に不要な再計算を省くようなデータの集まりを意味します。計算が非常に高価なグラフ中の枝に対し、非常に有用となります。

キャッシュは、変更不変な値(immutable values)を返します。したがい、参照カウントされたデータ構造(reference counted data structure)の内容を下流から変更することはできません。( 参照カウントされたデータ構造(Reference counted data structures) により詳しい解説があります。)返り値を編集する場合には、 Clone ノードを使用します。

../_images/userguide_25.jpg

キャッシュは 変数(Variable) と混在させることはできません。キャッシュはメモリ内に保存されている保証はありません。メモリーマネージャがキャッシュを破棄する可能性があるからです。つまりキャッシュは常に決定論的に一意に再計算可能であるべきとみなされます。キャッシュが、「常に存在すること」を期待してはいけません。そのようなコンテナとしての保証が必要な場合は変数を使用してください。

すべての Canvas ノードはキャッシュをサポートしています。が、単純化と見通しのため、特別なノードとしてユーザに公開しています。そのようなノードは、キャッシュが有効に設定された場合基本的に、パススルーノードとして振る舞います。任意のプリセットに対しキャッシュを有効にするには KL2DFG コマンドラインユーティリティdfgPresetCacheRule doxygen 修飾子を使用するか always を設定するかします。