使用 TCMalloc - 给定堆分配的对象,有没有办法获得对象的分配大小(仅表示 malloc 调用中传递的大小)?我要求一种“可靠”的方法(即,假设分配大小存储在指针之前,则不返回字长)
问问题
360 次
1 回答
3
从 1.6 版开始,TCMalloc包括:
size_t tc_malloc_size(void*);
它返回从参数开始的分配的可用大小。
它与 glibc malloc_usable_size
(或 BSD's malloc_size
)相同,并libtcmalloc
包含这两个函数的别名。
但是,它不一定是最初请求的大小。它可能更大(通常是)。我不相信 TCMalloc(或大多数其他 malloc 实现)保留该元数据,因此(afaik)既不可靠也不可靠的机制可以时间返回原始 malloc 调用并检查请求大小。
于 2018-03-14T16:29:59.300 回答