gpt4 book ai didi

c++ - 如何以编程方式检测进程在堆上分配的字节数?

转载 作者:IT王子 更新时间:2023-10-29 00:16:59 27 4
gpt4 key购买 nike

如何以编程方式检测进程在堆上分配的字节数?这个测试应该从流程本身开始。

最佳答案

我认为 mallinfo() 是您想要的:

#include <malloc.h>


struct mallinfo *info;

info = mallinfo();

printf ("total allocated space: %llu bytes\n", info->uordblks);
printf ("total free space: %llu bytes\n", info->fordblks);

struct mallinfo 结构是技术性的,特定于 malloc() 实现。但是你想要的信息就在那里。以下是我报告这些值的方式:

mallinfo.arena = "Total Size (bytes)" 
mallinfo.uordblks = "Busy size (bytes)"
mallinfo.fordblks = "Free size (bytes)"
mallinfo.ordblks = "Free blocks (count)"
mallinfo.keepcost = "Top block size (bytes)"
mallinfo.hblks = "Blocks mapped via mmap() (count)"
mallinfo.hblkhd = "Bytes mapped via mmap() (bytes)"

这两个据称未被使用,但它们似乎在我的系统上发生了变化,因此可能是有效的:

mallinfo.smblks = "Fast bin blocks (count)"
mallinfo.fsmblks = "Fast bin bytes (bytes)"

另一个有趣的值是由“sbrk(0)”返回的

关于c++ - 如何以编程方式检测进程在堆上分配的字节数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1696671/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com