_ LRUMap だいたいわかった! でまぁ list が必要かという話で slist じゃダメなのだろうかと kinaba さんに聞いたら大丈夫じゃねとの返答のすぐ後に やっぱダメじゃねとのこと。 後ろ向きのリンクが無いと古いヤツ使った時に 移動が O(1) でできないからねー。 じゃあどうするかなーと考えたのは、 slist アップデート時は前向きポインタに |1 した値を入れておく だからリンクをたどる時は必ず下位 1 bit は落とす でまぁ同じ要素を指すものを末尾にもつける 古いヤツを回収してる最中に (next&1)==1 な要素を見つけたら、その要素は消さないで次を消す とか。 新しい要素が追加されずに 同じ要素が参照されまくったりするとたくさんメモリを使ってしまうので、 たまに O(N) の GC を走らせるといいかもしれない。 なんかもっと賢くやって欲しいよなー (12:

