您是否有一些解决方案,如何使用可以包含不同不同大小的数据的对象来创建对象池(内存池)?因此,如果我请求内存池中具有一定大小的对象,它会返回给我一些已分配的内存块,其大小与我的请求最接近。它应该用C#编写。谢谢,因为我真的不知道什么是这个最好的集合和最好的算法。 C++ 中有一些解决方案,但 C# 没有内存池。
最佳答案
.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);
关于c# - 不同大小对象的内存池 - C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13344018/