揭秘高性能Linux服务器内存池技术是如何实现的
大家生活中肯定都有这样的经验,那就是大众化的产品都比较便宜,但便宜的大众产品就是一个词,普通;而可以定制的产品一般都价位不凡,这种定制的产品注定不会在大众中普及,因此定制产品就是一个词,独特。
有的同学可能会有疑问,你不是要聊技术吗?怎么又说起消费了?
原来技术也有大众货以及定制品。
通用 VS 定制
malloc开始搜索空闲内存块,如果能找到一块大小合适的就分配出去
如果malloc找不到一块合适的空闲内存,那么调用brk等系统调用扩大堆区从而获得更多的空闲内存
malloc调用brk后开始转入内核态,此时操作系统中的虚拟内存系统开始工作,扩大进程的堆区,注意额外扩大的这一部分内存仅仅是虚拟内存,操作系统并没有为此分配真正的物理内存
brk执行结束后返回到malloc,从内核态切换到用户态,malloc找到一块合适的空闲内存后返回
内存池技术有什么特殊的吗?
内存池技术原理
实现内存池的考虑
数据结构
线程安全
线程局部存储
线程局部存储+内存池
其它内存池形式
一个有趣的问题
总结
最后的最后,如果觉得文章对你有帮助的话,请多多分享、转发、在看。
评论