微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

获取Linux系统中c程序的峰值堆内存使用情况

如何解决获取Linux系统中c程序的峰值堆内存使用情况

我有一个 c 程序,比如说 moment(dataObj.termDate).format("YYYY-MM-DD"); 。我可以使用以下工具吗:

  1. 问题之钩:
a.out

具体来说,这是在Linux系统中。

一个类似的问题是我可以在我的源程序中插入一段代码,每次执行时,它都会报告当前的堆内存使用情况。喜欢:
2. 问题的钩子:

>$ peak-memory ./a.out  
Peak heap memory allocated: 12345678 Bytes

我知道我可以使用包装器 int main(){ int *a = (int*) malloc(12); // some code... print_heap_usage(); // other code... } my_malloc 函数来跟踪分配和释放到全局变量的内存。但是对于别人的源代码是不切实际的,我可能需要修改它的很多源代码。而且我不能再使用 my_freenew

搜索了 stackoverflow,有一个相关的问题 Get peak amount of memory used by a C program 但它询问了 Windows 系统,并不特别关心堆内存使用情况。有些答案说要使用 delete,我用 google 搜索了一下,发现它无法判断堆的使用情况。

解决方法

要么

Statistics for Memory Allocation with malloc

malloc_stats

注意:检查符合部分。

另一个噱头(在终端中):

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。