gpt4 book ai didi

c# - 不同大小对象的内存池 - C#

转载 作者:太空宇宙 更新时间:2023-11-03 11:13:31 26 4
gpt4 key购买 nike

您是否有一些解决方案,如何使对象池(内存池)可以包含不同的不同大小的数据?因此,如果我在内存池中请求某个大小的对象,它会返回一些已分配的内存块,其大小与我的请求最接近。它应该用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com