【发布时间】:2021-09-25 02:56:59
【问题描述】:
我正在用 c 语言做一个数据结构项目,在这个项目中我一直在使用一些函数,比如在树中插入、从树中删除、在树中查找特定值。我必须计算每个单独函数的内存使用情况,例如插入函数、删除函数等中的内存使用情况。如果有任何库或内置函数来计算内存使用情况,请指导我。我发现了一些内容,比如查找整个程序的内存使用情况,但我关心的是特定功能的内存使用情况。
【问题讨论】:
-
我认为这项任务的目标是让您也查看源代码并从代码中找出内存使用情况。就像时间复杂度分析一样,只是为了记忆。
-
AFAIK 没有库或内置函数可以做到这一点。但我可以建议您将自己的
malloc、free(和其他使用的内存函数)重写为包含分配/释放内存的字节计数器的包装函数。像这样的东西:void *my_malloc(size_t s) { used_bytes_counter+=s; return malloc(s);} -
所说的问题太模糊了。例如,是否要询问插入函数为插入节点分配了多少内存?或者问插入函数在查找插入节点的位置时访问了多少内存?或者插入函数使用多少堆栈空间?老师们不会突然问这些问题;它们来自先前的课程和背景,可以清楚地说明问题。
标签: c memory data-structures stack heap-memory