如果您要确定程序是否存在内存泄漏,则
top不是适合该工作的工具(
valrindis)。
top显示操作系统看到的内存使用情况。即使您调用
free,也无法保证释放的内存将返回给操作系统。通常情况下不会。但是,在您的进程可以将其用于后续分配的意义上,内存确实变得“空闲”。
编辑
如果
libc支持,可以尝试进行尝试
M_TRIM_THRESHOLD。即使您遵循此路径,也将非常棘手(靠近堆顶部的单个使用过的块将阻止将其下的所有可用内存释放给操作系统)。

如果您要确定程序是否存在内存泄漏,则
top不是适合该工作的工具(
valrindis)。
top显示操作系统看到的内存使用情况。即使您调用
free,也无法保证释放的内存将返回给操作系统。通常情况下不会。但是,在您的进程可以将其用于后续分配的意义上,内存确实变得“空闲”。
编辑
如果
libc支持,可以尝试进行尝试
M_TRIM_THRESHOLD。即使您遵循此路径,也将非常棘手(靠近堆顶部的单个使用过的块将阻止将其下的所有可用内存释放给操作系统)。