4

データベース管理システムの作成に大きな関心があります。SQL Server 2000 の実装方法に関するいくつかのページを読んだところ、4KB のメモリ ページが使用され、それぞれがハード ディスク上の 4KB ページの直接コピーであることがわかりました。これらのページは必要に応じて RAM にロードされ、アイドル状態になると遅延してディスクに書き戻されます (単純化しすぎました)。

プロジェクトの計画段階にあるので、CLR で実行されるコードでこのレベルの制御が可能かどうか疑問に思っています。C、C++、またはDがおそらくこのタスクに適していることはわかっていますが、最初にそれを自分自身に証明したいと思います。この背後にある動機の 1 つは、少なくとも比較的古いオブジェクトについては、データベースをヒープとして使用して、最終的に CLR ガベージ コレクターを実際にオーバーライドしたいと考えていることです。

CLR からメモリを直接制御することは可能ですか? もしそうなら、どうすればいいですか?

今のところ、データが 256 バイト幅の構造体/クラスの集まりであり、ディスク上のフラット テーブルに格納されており、64KB のページを使用しているとします。

4

1 に答える 1

2

並べ替え。「メモリ」への書き込みが実際にはディスクへの書き込みになるように、.NET でメモリ マップ ファイルを使用できます。

于 2012-09-12T04:00:47.967 に答える