2

您是否有一些解决方案,如何使用对象制作对象池(内存池)而不是可以包含不同大小的不同数据?因此,如果我在内存池中请求具有一定大小的对象,它会返回给我一些分配的内存块,其大小与我的请求最接近。它应该用C#编写。谢谢,因为我真的不完全知道,这个和最佳算法的最佳集合是什么。在 C++ 中有一些解决方案,但 C# 没有内存池。

4

1 回答 1

2

.Net Framework 已经有这样的实现(由 Windows Communication Foundation 使用)。请参阅缓冲区管理器

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 回答