[PRO]内存池
内存池
1 介绍
什么是内存池
内存池是一种预分配内存并进行重复利用的技术。减少动态内存的分配与释放,提升程序运行效率。本质上是申请一块较大的内存,之后在应用层对这块内存进行管理,减少系统调用的开销。
优点
- 减少动态内存分配的开销
- 避免内存碎片
- 降低系统调用频率
- 稳定分配时间
缺点
- 初始内存占用较大
- 复杂
- 不适合大型对象
应用场景
- 高频小对象分配
- 游戏开发:粒子、子弹、npc等
- 网络编程
- 实时系统:内存池分配内存时间稳定,适合实时控制系统
- 高性能计算
2 前置知识
2.1 std::allocator
2.2 自旋锁
自旋锁是一种轻量级的锁机制,用于实现线程同步。他不会进入阻塞状态,而是不断尝试获取锁,避免了上下文切换的开销。
自旋锁 | 互斥锁 |
---|---|
忙等 | 阻塞 |
适合持锁时间很短 | 适合持锁时间长 |
无需上下文切换,性能高 | 需要上下文切换,开销大 |
[PRO]内存池
https://erlsrnby04.github.io/2025/02/15/PRO-内存池/