发布时间:2011-10-08 16:09:47
下面我们开始free过程的分析,tcmalloc的free函数主要为tc_free,tc_delete,他们主要调用的还是do_free函数......【阅读全文】
发布时间:2011-10-08 16:07:42
解释到这里基本完成了size=kMaxSize的情况,这时候do_malloc调用do_malloc_pages函数。......【阅读全文】
发布时间:2011-10-08 16:06:37
我们在看看Carve函数,Carve函数将span从normal list中切出,返回给Populate。首先将span的location为置位为Span::IN_USE,然后判断这个span的长度是否真好为n,如果大于n那么将span切割成两个span......【阅读全文】
发布时间:2011-10-08 16:05:27
下面我们来看看FetchFromSpans和Populate两个函数。FetchFromSpans首先判断CentralFreeList的nonempty_列表中是否有可用的span如果没有则返回NULL,否则取nonempty_第一个span,然后将span中切出一个obj,......【阅读全文】
发布时间:2011-10-08 16:02:54
到此为止ThreadCache::GetCache函数分析完毕,那么我们返回do_malloc函数,首先判断size是否小于kMaxSize(8u * kPageSize),这个是区分要分配的是large object还是small obj。如果是small obj,......【阅读全文】