欢迎光临散文网 会员登陆 & 注册

基于C++研究高并发内存池

2023-04-23 22:00 作者:玟玟的大宝贝  | 我要投稿

访问【WRITE-BUG数字空间】_[内附完整源码和文档]

内存池:程序预先向系统申请一大块足够的内存,此后,当系统需要申请内存的时候,不是直接向操作习题申请,而是向内存池中申请,当释放的时候,不返回给操作系统,而是返回给内存池,当程序退出时,内存池才将申请的内存真正释放

高并发内存池

借鉴tcmalloc(ThreadCaching Malloc),即线程缓存的malloc,实现了高效的多线程内存管理,用于替代系统的内存分配相关的函数(malloc,free)

池化技术:向系统先申请过量的资源,然后自己管理,以备不时之需,之所以申请过量资源,是因为每次申请资源都有较大的开销,那边不如提前申请好,提高程序运行效率

在计算机中除了内存池,还有连接池,线程池,对象池等,以线程池为例,它的主要思想是,先启动若干数量的线程,让他们处于睡眠状态,当接收到客户端请求时,唤醒某个沉睡的线程,让它处理客户端请求,当处理完请求之后,线程又进入了休眠状态

内存池:程序预先向系统申请一大块足够的内存,此后,当系统需要申请内存的时候,不是直接向操作习题申请,而是向内存池中申请,当释放的时候,不返回给操作系统,而是返回给内存池,当程序退出时,内存池才将申请的内存真正释放

内存池解决问题:

1.主要解决效率问题

2.内存碎片问题

malloc实际就是一个内存池

定长内存池

固定大小的内存申请管理

特定:

性能达到极致

不考虑内存碎片等问题

设计方式:

向内存申请一块足够大的内存块,然后每次申请内存时我们就切出去一小部分拿来使用,


基于C++研究高并发内存池的评论 (共 条)

分享到微博请遵守国家法律