簡體   English   中英

不同大小對象的內存池 - C#

[英]Memory pool for object with different size - C#

您是否有一些解決方案,如何使用可以包含不同大小的不同數據的對象創建對象池(內存池)? 因此,如果我請求內存池中具有某個大小的對象,它會返回給我一些與我的請求大小最接近的已分配內存塊。 它應該用C#編寫。 謝謝,因為我真的不知道,這個和最好的算法的最佳集合是什么。 在 C++ 中有一些解決方案,但 C# 沒有內存池。

.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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM