2

さまざまなサイズのさまざまなデータを含めることができるオブジェクトを使用してオブジェクトプール(メモリプール)を作成する方法について、解決策はありますか?したがって、あるサイズのメモリプール内のオブジェクトを要求すると、要求に最も近いサイズの割り当てられたメモリチャンクが返されます。C#で記述する必要があります。ありがとう、私は本当に正確にはわからないので、これと最高のアルゴリズムのための最高のコレクションは何ですか。C ++にはいくつかの解決策がありますが、C#用のメモリプールはありません。

4

1 に答える 1

2

.Net Frameworkには、すでにそのような実装があります(Windows Communication Foundationで使用されています)。BufferManagerを参照してください

var buffMgr = BufferManager.CreateBufferManager(
                 104857600, // use no more than 100 MB in total
                 10485760);  // allocate 10 MB max to each buffer
var buff = buffMgr.TakeBuffer(65535); // allocate a buffer enough to fit a 65 KB object
                           // note: this could return a buffer bigger than 65 KB 

//when done with the buffer:
buffMgr.ReturnBuffer(buff);
于 2012-11-12T12:55:04.273 に答える