使用 TCMalloc - 给定堆分配对象,有没有办法获得对象的分配大小(意味着只有 malloc 调用中传递的大小)? 我要求一种“可靠”的方法(即,假设分配大小存储在指针之前,则不会返回一个字大小)
最佳答案
从版本 1.6 开始,TCMalloc includes :
size_t tc_malloc_size(void*);
它返回从参数开始的分配的可用大小。
它与 glibc malloc_usable_size
(或 BSD 的 malloc_size
)相同,libtcmalloc
包含这两个函数的别名。
但是,它不一定是最初请求的大小。它可能更大(通常是)。我不相信 TCMalloc(或大多数其他 malloc 实现)会保留该元数据,因此(afaik)既没有可靠的机制也没有不可靠的机制来返回原始 malloc 调用并检查请求大小。
关于c++ - TCMalloc - 获取指针的分配大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49281720/