言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

状態樹とキャッシュ

状態樹の効率面での数少ない利点はキャッシュにある。状態樹のすべての枝は不変なので、同じ演算を複数繰り返す場合は枝を再利用出来る。つまり、キャッシュは自動的にシステムが行う。真面目にやるとキャッシュできる枝を捜すコストが大変なので、実際はランク分けを行う。つまり、殿堂入りする枝は毎回再利用されるけど、出来たばかりの奴は様子見が行われる。

ここで失敗。肝心のプロセスに関する配慮がまるで無い。デバッガで逆回転を行うには、オブジェクトの過去だけでなく、プロセスの過去を知る必要がある。たぶん。プロセス自体もオブジェクトなので、当然ツリーに組み込まれているはずだから履歴を持つんだけど、これはさすがに本当にやると大変そうだ。大体、プロセスが走るって本当はどういう何だ?

あと、全てのオブジェクトが実はある原始オブジェクトの状態に過ぎないという設定にすると美しくてよいかも知れない。