代码main.c:
#include <stdio.h>
#include <stdlib.h>
int main()
{
void* p = malloc(1000);
free(p);
return(0);
}
第一次编译:{{1}}
第二次编译:{{1}}
第一次使用glibc stdlib,第二次使用tcmalloc
我可以像这样编写main.c:
gcc main.c -o a.out
第3次编译:{{1}}
第3个肯定是使用tcmalloc
第二和第三编译是否相同?
我知道tcmalloc支持更多函数,如gcc main.c -ltcmalloc -o a.out
/ #include <stdio.h>
#include <google/tcmalloc.h>
int main()
{
void* p = tc_malloc(1000);
tc_free(p);
return(0);
}
,我想使用tc_ *函数是编写main.c的更好选项,所以我有更多的函数?
我找不到像tc_valloc / tc_new / tc_newarray / tc_valloc / tc_pvalloc
这样的函数的任何手册页答案 0 :(得分:0)
http://sourcecodebrowser.com/google-perftools/1.4/windows_2google_2tcmalloc_8h.html
我找到了关于所有tcmalloc函数的这个手册页
答案 1 :(得分:0)
当加载tcmalloc时,malloc和free被别名(参见__attribute别名的gcc文档)到tc_malloc和tc_free。
所以你的第二轮和第三轮将是相同的。
tc_malloc和tc_free的目的是能够直接使用malloc的tcmalloc版本,而不管其他分配器是什么。