[PRO]内存池

内存池

1 介绍

什么是内存池

内存池是一种预分配内存并进行重复利用的技术。减少动态内存的分配与释放,提升程序运行效率。本质上是申请一块较大的内存,之后在应用层对这块内存进行管理,减少系统调用的开销。

优点

  • 减少动态内存分配的开销
  • 避免内存碎片
  • 降低系统调用频率
  • 稳定分配时间

缺点

  • 初始内存占用较大
  • 复杂
  • 不适合大型对象

应用场景

  • 高频小对象分配
    • 游戏开发:粒子、子弹、npc等
    • 网络编程
  • 实时系统:内存池分配内存时间稳定,适合实时控制系统
  • 高性能计算

2 前置知识

2.1 std::allocator

2.2 自旋锁

自旋锁是一种轻量级的锁机制,用于实现线程同步。他不会进入阻塞状态,而是不断尝试获取锁,避免了上下文切换的开销。

自旋锁 互斥锁
忙等 阻塞
适合持锁时间很短 适合持锁时间长
无需上下文切换,性能高 需要上下文切换,开销大

[PRO]内存池
https://erlsrnby04.github.io/2025/02/15/PRO-内存池/
作者
ErlsrnBy04
发布于
2025年2月15日
许可协议