包括heap1、heap2、heap3、heap4、heap5。
各heap的区别:
Heap1 | Heap2 | Heap3 | Heap4 | Heap5 | |
---|---|---|---|---|---|
分配 | ✓ | ✓ | Malloc | ✓ | ✓ |
回收 | ✗ | ✓ | free | ✓ | ✓ |
链接 | ✗ | 按块大小升序链接 | 与平台相关 | 按地址升序链接 | 按地址升序链接 |
合并 | ✗ | ✗ | 与平台相关 | ✓ | ✓ |
内存 | 单堆区 | 单堆区 | 单堆区 | 单堆区 | 多堆区 |
各heap说明:
Heap1:
- 只分配,不回收。
- 适合不会执行删除任务、队列、信号量、互斥量等的程序。
Heap2:
- 能分配,能回收。但是回收时不处理碎片。
- 适合申请