インメモリ圧縮とメモリアロケータの組み合わせに関するプロジェクト/少なくともいくつかの研究はありますか(もちろん、ある程度の速度を犠牲にして)?
たとえば、シナリオを想像してみてください。処理しなければならない巨大なツリーがあります。このツリーはメモリに収まりません。圧縮アロケータを使用すると、ほとんどすべてのツリーに適合できます。
もちろん、一度にツリーを構築せずに反復アプローチを使用することもできますが、私の質問は純粋に理論的なものです (今日の場合)。
おそらく逆参照には、アロケーターが選択した領域をアンパックできるように、特別なマクロ/テンプレートが必要になるでしょう。しかし、ある地域が別の地域などを参照している場合はどうなるでしょうか? おそらく管理された言語でのみ解決される、非常に複雑なアルゴリズムがあるに違いありません (しかし、Boehm は C++ の GC を作成することができました!)
それとも、(保存されたメモリと比較しても) 非常に複雑/遅いため、まったく価値がないのでしょうか? 特にガベージ コレクション環境では、仮想メモリとスワッピングが非常に遅くなる場合があります。最近、1 GB のアプリで OS 全体が応答しなくなっていました...そのため、カーネルレベルのメカニズムは必ずしも効率的ではありません。
あなたはそれを考えることができます(私はまだそれが非常にばかげた考えではないことを保証しようとしています)反対の高速ユーザーモードfutex対低速ネイティブミューテックス、高速ユーザーモードグリーンスレッド(Erlangのように、最大2000万の同時プロセスでマシン) と低速のネイティブ スレッドなど。