c# - C#,字节数组,避免内存碎片
问题描述
我正在编写一个数据结构,其主要目的是包含以这种方式组织的二进制数据(字节数组),用户可以在中间插入数据而不会造成性能损失(移动大块内存)。
为此,我需要创建许多较小的字节数组,它们将用作较大结构部分的缓冲区。问题是我可能需要经常处理这些小数组,而且我担心可能出现内存碎片。
我避免它的想法是确保我在此结构中使用的所有数组都具有两种大小之一,例如 1024 或 2048 字节(或类似,通常为 n 和 2*n)。我希望简化内存管理器的工作,它能够在处理完数组后重用内存。
它会那样工作吗?还是我应该设计某种数组池并自己实现数组重用机制?
解决方案
推荐阅读
- javascript - 为什么 Javascript string.replace("\n\t","xxx") 将 "\n\t" 替换为 "\nxxx"?
- python - python实现生产计划调度问题
- python - Python Cerberus:使用“anyof_schema”规则验证不同模式的问题
- keycloak - Keycloak 一次性访问令牌
- scala - 如何知道邮箱是空的以取消存储和发送低优先级消息?
- sql - 在 SQL 中,如何根据开始日期和经过的天数计算一年中的天数
- css - 将 input[type=text] 中的图标放在当前文本的右侧,可能吗?
- java - java 11 NoSuchMethodError javax.xml.soap.SOAPElement.addAttribute
- redux - 使用 Jest 在 Stencil 中使用 Redux 对 store.mapDispatchToProps 进行单元测试
- scala - Scala:使用排序特征错误地评估比较