首页 > 解决方案 > C#,字节数组,避免内存碎片

问题描述

我正在编写一个数据结构,其主要目的是包含以这种方式组织的二进制数据(字节数组),用户可以在中间插入数据而不会造成性能损失(移动大块内存)。

为此,我需要创建许多较小的字节数组,它们将用作较大结构部分的缓冲区。问题是我可能需要经常处理这些小数组,而且我担心可能出现内存碎片。

我避免它的想法是确保我在此结构中使用的所有数组都具有两种大小之一,例如 1024 或 2048 字节(或类似,通常为 n 和 2*n)。我希望简化内存管理器的工作,它能够在处理完数组后重用内存。

它会那样工作吗?还是我应该设计某种数组池并自己实现数组重用机制?

标签: c#memory-managementmemory-fragmentation

解决方案


推荐阅读