0
点赞
收藏
分享

微信扫一扫

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

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

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

高并发内存池

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

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

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

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

内存池解决问题:

1.主要解决效率问题

2.内存碎片问题

malloc实际就是一个内存池

定长内存池

固定大小的内存申请管理

特定:

性能达到极致

不考虑内存碎片等问题

设计方式:

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

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

基于C++研究高并发内存池_程序退出_02

基于C++研究高并发内存池_线程池_03

基于C++研究高并发内存池_线程池_04

举报

相关推荐

0 条评论