How to Allocate Memory
3 months ago
- #data-structures
- #memory-optimization
- #performance
- 重新思考内存分配可以带来显著的速度提升(2-20倍)。
- 避免通用内存分配;根据使用模式为特定数据结构分配内存。
- 考虑替代数据结构(例如用字典树替代哈希表)以获得更好的内存分配策略。
- 为不同数据结构或使用模式使用独立分配器以提高性能。
- 将malloc调用封装在类型特定函数中以便更好地分析和管理。
- 操作系统提供mmap等工具来分配连续的虚拟内存(页)。
- 可以使用alloca或sbrk等工具优化栈分配以实现多栈管理。
- 伙伴分配器能有效管理数组,特别适用于复制、扩展和切片等操作。
- 引用计数可以优化数组和递归数据结构的内存管理。
- 基于类的对象分配配合独立空闲列表可减少碎片并提高效率。
- 通过控制每次分配的收集步骤,可以实现无停顿的垃圾回收策略。