【发布时间】:2018-08-23 05:13:00
【问题描述】:
使用 TCMalloc - 给定堆分配对象,有没有办法获得对象的分配大小(仅表示 malloc 调用中传递的大小)? 我要求一种“可靠”的方法(即,假设分配大小存储在指针之前,则不返回字长)
【问题讨论】:
-
为什么需要这个?标准
malloc也没有这样的东西? -
@Michael Walz - 我认为我为什么需要这个并不重要。另外,TCMalloc 是比标准 malloc 更全面的库,还有堆分析工具等...
-
“为什么”通常很重要(参见:xyproblem.info)
-
@Michael Walz - 当每个请求独占一组线程时,请求的分配计数。每个请求都会不时检查一次,以查看它是否满足内存限制。想法是代理现有的 malloc/free 调用,对每个请求的计数器进行最少的管理。当调用 malloc 时,大小很容易知道,但在调用 free 时则不知道
-
您可以编写自己的
mymalloc/myfree函数来调用原始的malloc/free或TCMalloc/free或任何其他函数,并将分配的大小存储在实际数据之前。但这会增加一点开销。
标签: c++ c memory-management free tcmalloc