webkit中FastMalloc的分析
来源:互联网 发布:外汇交易员 知乎 编辑:程序博客网 时间:2024/05/21 19:31
FastMalloc是google写的,主要是为了内存管理.
首先每个线程都有自己的TCMalloc_TheadCache结构,用来管理每个线程的heap,由PageHeapAllocation<TCMalloc_TheadCache>分配,
其次有个TCMalloc_Central_Freelist数组,这个是所有线程共享的用来获取进程heap的空内存,管理的Span结构
然后所有内存管理在TCMalloc_PageHeap,通过PageHeapAllocation<Span>分配Span结构,并且为其添加相应的heap.
为了不频繁地调用分配和释放函数,
每次都会为Span分配一块很大的内存,然后切分成小块,
交给TCMalloc_Central_Freelist,最后再由TCMalloc_TheadCache取走其中的一部分。
其中每个TCMalloc_Central_Freelist中的object都有一个固定的大小,
因此所有的内存大小都会映射到其中一个TCMalloc_Central_Freelist,
然后从中取走一定数量的object到TCMalloc_TheadCache中,
再由TCMalloc_TheadCache返回给申请者。
但是当申请的太大时,会直接由TCMalloc_PageHeap分配,然后返回给申请者
其中的数值都可以修改,但是要注意数值间的联系,尤其是TCMalloc_Central_Freelist数组的个数
google的默认数值,应该是比较好的
- webkit中FastMalloc的分析
- 关于的webkit的fastmalloc
- Webkit中HTML5 Video的实现分析
- Webkit中HTML5 Video的实现分析
- Webkit中HTML5 Video的实现分析
- Webkit中HTML5 Video的实现分析(五) - WebKit中视频事件的传递
- webkit中 Frame对象分析
- webkit中 Frame对象分析
- webkit中 Frame对象分析
- webkit中timer实现 分析
- webkit中 Frame对象分析
- webkit中 Frame对象分析
- Webkit中HTML5 Video的实现分析-HTMLMediaElement & MediaPlayer
- webkit Page对象的分析
- webkit Page对象的分析
- 分析 webkit 的Timer类
- WebKit Page对象的分析
- webkit Page对象的分析
- Windows7下如何安装IIS7
- Microsoft 微软101个LINQ查询示例
- ARM2410S 博创开发板 NFS 挂载
- IE中使用FireBug功能
- 在电视剧中插播广告时,本地STC的处理过程
- webkit中FastMalloc的分析
- flex 拖放的实现
- PL/SQL Devloper--比较对象/数据
- ssh自动连接 (密钥对),同时ssh控制多台主机,两台交互式控制
- 排序算法汇总(选择排序 ,直接插入排序,冒泡排序,希尔排序,快速排序...)
- 过滤非法字符
- load data infile 优化mysql
- [android反编译小结]apktool/ AXMLPrinter2.jar/ dex2jar.bat/ jd-gui/ Jodeclipse/ JadClipse
- gethostbyname函数