memcached 的内存分配器是如何工作的?为什么不适用 malloc/free!?为何要使用 slabs?
2024-10-18 20:00:06
实际上,这是一个编译时选项。默认会使用内部的 slab 分配器。您确实确实应该
使用内建的 slab 分配器。最早的时候,memcached 只使用 malloc/free 来管理
内存。然而,这种方式不能与 OS 的内存管理以前很好地工作。反复地 malloc/free
造成了内存碎片,OS 最终花费大量的时间去查找连续的内存块来满足 malloc 的
请求,而不是运行 memcached 进程。如果您不同意,当然可以使用 malloc!只
是不要在邮件列表中抱怨啊
slab 分配器就是为了解决这个问题而生的。内存被分配并划分成 chunks,一直被
重复使用。因为内存被划分成大小不等的 slabs,如果 item 的大小与被选择存放
它的 slab 不是很合适的话,就会浪费一些内存。Steven Grimm 正在这方面已经
做出了有效的改进。
最新文章
- jQuery 2.0.3 源码分析 回溯魔法 end()和pushStack()
- ASP.NET MVC中Unobtrusive Ajax的妙用
- x64 PL/SQL 连接 Oralce 提示 Could not initialize oci.dll
- Solr学习笔记之3、Solr dataimport - 从SQLServer导入数据建立索引
- yum源万能
- poj 3026 Borg Maze (最小生成树+bfs)
- ListView之BaseAdapter
- 《UNIX网络编程》TCP客户端服务器例子
- [Android学习笔记]View的draw过程学习
- JDBC第四篇--【数据库连接池、DbUtils框架、分页】
- Windows和Linux查看和更改mysql连接池
- trait与policy模板技术
- [转] 一张图理解prototype、proto和constructor的三角关系
- 【转】Python之函数进阶
- Xcode 清理存储空间
- maven(二)基于intellij idea搭建maven项目
- adb 调试出现问题
- WMS和WMTS的区别
- P3810 【模板】三维偏序(陌上花开)
- 手动安装 pygame