
池化技术
文章平均质量分 97
敲上瘾
热爱生活,热爱学习,热爱世界
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
进程池的制作(linux进程间通信,匿名管道... ...)
在程序使用内存的时候,比如vector扩容机制,会提前给你开辟一块空间供你使用,尽管现在用不到,相当于做一下预备。因为只是一个小测试,代码写的并不严谨(没有检查调用是否成功,没有关闭文件,没有进程等待)大家不用太在意,能说明问题就行。,但它与一般的文件还是有些区别,文件都是储存到磁盘上的,而进程之间通信用的文件并不需要把它储存到磁盘上,它只是作为一个传输介质。那么进程池也同样,给父进程提前开辟一些子进程,提供父进程使用。,顾名思义就是没有名字,也不需要名字,因为子进程能够继承下来父进程开辟的管道资源。原创 2025-01-27 09:00:33 · 1437 阅读 · 32 评论 -
线程池的封装(c/c++)
池化技术所谓“池化技术”,就是,以备不时之需。之所以要申请过量的资源,是因为每次申请该资源都有较⼤的开销,不如提前申请好了,这样使⽤时就会变得⾮常快捷,⼤⼤提⾼程序运⾏效率。:复用已创建的线程,减少线程创建销毁的开销。:任务到达时可以直接执行,无需等待线程创建。:统一分配、调优和监控线程。原创 2025-04-17 12:28:23 · 1983 阅读 · 67 评论 -
定长内存池原理及实现
所谓“池化技术”,就是,以备不时之需。之所以要申请过量的资源,是因为每次申请该资源都有较⼤的开销,不如提前申请好了,这样使⽤时就会变得⾮常快捷,⼤⼤提⾼程序运⾏效率。在计算机中,有很多使⽤“池”这种技术的地⽅,除了。以服务器上的线程池为例,它的主要思想是:先启动若⼲数量的线程,让它们处于睡眠状态,当接收到客户端的请求时,唤醒池中某个睡眠的线程,让它来处理客户端的请求,当处理完这个请求,线程⼜进⼊睡眠状态。原创 2025-03-25 10:48:33 · 1143 阅读 · 67 评论 -
高并发内存池(一):项目介绍和ThreadCache(线程缓存)实现
在多线程环境下进行内存申请本质上属于对公共资源的访问,高并发场景下对内存分配锁的竞争会异常激烈,这将严重拖慢程序运行效率。此外,频繁的系统级内存申请不仅会产生额外开销,还可能引发内存碎片问题。传统的malloc内存分配机制由于这些固有缺陷,已难以满足现代高性能开发中对内存管理效率的需求。原创 2025-03-28 10:04:43 · 1668 阅读 · 68 评论 -
高并发内存池(二):CentralCache(中心缓存)的实现
本文将要讲解的高并发内存池,它的原型是Google的⼀个开源项⽬tcmalloc,全称Thread-Caching Malloc,近一个月我将以学习为目的来模拟实现一个精简版的高并发内存池,并对核心技术分块进行精细剖析,分享在专栏《高并发内存池》里,期待小伙伴们的热情支持与关注!上期讲了Thread Cache的实现,但并未对在Central Cache中如何申请内存进行讲解。接下来让我们会对Central Cache的结构和如何在Central Cache中申请内存进行学习和代码实现。原创 2025-04-02 10:09:05 · 13271 阅读 · 78 评论 -
高并发内存池(三):PageCache(页缓存)的实现
⻚缓存是在central cache缓存上⾯的⼀层缓存,存储的内存是以⻚为单位存储及分配的,central cache没有内存对象时,从page cache分配出⼀定数量的page,并切割成定⻓⼤⼩的⼩块内存,分配给central cache。当⼀个span的⼏个跨度⻚的对象都回收以后,page cache会回收central cache满⾜条件的span对象,并且合并相邻的⻚,组成更⼤的⻚,缓解内存碎⽚的问题。原创 2025-04-10 08:27:18 · 1499 阅读 · 85 评论 -
高并发内存池(四):内存释放原理与实现
不能粗鲁地把内存块连接到一个随便找的span,这样的话,属于不同页的内存块就混乱在一起,后面的PageCache就没法玩了!页号成为了它们之间的脐带,内存块地址除以8KB就是它所在的页,而一个span的信息中也能找到它管理着哪些页,只需要做一个页号到span的映射(即哈希表)就能解决问题。页级别的内存管理是在PageCache,我们把哈希映射在PageCache层创建和维护。原创 2025-04-16 08:08:59 · 1322 阅读 · 59 评论 -
高并发内存池(五):性能测试与性能优化
未处理超过256KB的大内存申请。前期测试覆盖不足,导致多线程场景下隐藏了一些bug。本文将修复这些问题,并实现三个目标:增加大块内存分配逻辑替换系统自带的malloc通过性能测试定位优化瓶颈。原创 2025-04-30 10:09:10 · 1882 阅读 · 70 评论 -
高并发内存池(完整版):支撑百万级并发的幕后英雄
Thread-Caching Malloc,即线程缓存的malloc,实现了⾼效的多线程内存管理,⽤于替代系统的内存分配相关的函数(malloc、free)。在多线程环境下进行内存申请本质上属于对公共资源的访问,高并发场景下对内存分配锁的竞争会异常激烈,这将严重拖慢程序运行效率。此外,频繁的系统级内存申请不仅会产生额外开销,还可能引发内存碎片问题。传统的malloc内存分配机制由于这些固有缺陷,已难以满足现代高性能开发中对内存管理效率的需求。原创 2025-05-06 10:54:58 · 1010 阅读 · 49 评论